【《Effective C++》:条款41-条款42】教程文章相关的互联网学习教程文章

《C++ Primer Plus》15.5 类型转换运算符 学习笔记

C++相对C更严格地限制允许的类型转换,并添加4个类型转换运算符,是转换过程更规范:* dynamic_cast;* const_cast;* static_cast;* reinterpret_cast。【dynamic_cast运算符】假设High和Low是两个类,而ph和pl的类型分别是High*和Low*,则仅当Low是High的可访问基类(直接或间接)时,下面的语句才将一个Low*指针赋给pl:pl = dynamic_cast<Low *> ph;否则,该与据将空指针赋给pl。通常,该运算符的语法如下:dynamic_cast < ty...

C++泛型线性查找算法——find【代码】

C++泛型线性查找算法——find《泛型编程和STL》笔记及思考。线性查找可能是最为简单的一类查找算法了。他所作用的数据结构为一维线性的空间。这篇文章主要介绍使用 C++ 实现泛型算法 find的过程。C 版本首先介绍 C find 算法的实现,用以引入 C++ 版本。char *find1(char *first,char *last,int c) {while(first != last && *first != c)++first;return first; }该版本的算法循环检查每个元素,尾后指针(last)作为结束标识。使用举...

C++中const的一些知识点【代码】

常成员函数对常成员函数进行操作时,需要强调的是,必须在成员函数的声明和定义处同时加上 const 关键字。char *getname() const和char *getname()是两个不同的函数原型,如果只在一个地方加 const 会导致声明和定义处的函数原型冲突。 (重点!重点!重点!)最后再来区分一下 const 的位置:函数开头的 const 用来修饰函数的返回值,表示返回值是 const 类型,也就是不能被修改,例如const char * getname()。函数头部的结尾加上...

Effective C++条款40【代码】

本节条款讲述了多重继承的使用 多重继承一般情况下用的很少,原因在于多重继承容易出现程序错误。以下去两个典型的调用错误: 第一种错误如下代码:#include<iostream>using namespace std;class B { public:virtualintm(){} };class C { public:virtualintm(){}; };class D :public B,private C { public:};int main() {D d;d.m();//编译不通过,因为m()调用不明确return0;} 如上代码,由于B类中有个m()函数,C类中也有个m()函...

我的C++学习笔记(第02天)

昨天,psv到手,玩的不可开交,于是没有更新,反正是周末休息休息一下啦...话不多说...go on...笔记:第02章 变量和数据类型2.1 常量  常量是在程序运行过程中不变的量,变量是则可发生变化的值."先声明,后使用"2.1.1 声明常量  * const常量(尽量使用)const <类型名> <变量名> = <表达式>;  * 宏常量    #define <宏名> <常量>    宏名可以是简单的字符名,也可以是带有参数的函数名;    常量可以是数值,字符串和函数...

[C++ Primer Plus] 第8章、函数探幽——(二)课后习题【代码】【图】

1.编写通常接受一个参数(字符串的地址),并打印该字符串的函数。然而,如果提供了第二个参数(int类型),且该参数不为0,则该函数打印字符串的次数将为该函数被调用的次数(注意,字符串的打印次数不等于第二个参数的值,而等于函数被调用的次数)。是的,这是一个非常可笑的函数,但它让读者能够使用本章介绍的一些技术。在一个简单的程序中使用该函数,以演示该函数是如何工作的。 1 #include <iostream>2usingnamespace std;...

C++的sting类使用

一:  string作为C++常用的一个类,得熟悉它的一些常用的方法。在使用这个类之前,得加上头文件  #include <string>  #include <stdexcept> //标准的异常类的库 二:  (1)获取string的元素个数方法,还有访问string中的每个元素的方法    void test01()    {       string str1="hello world!good bye";       int i;       cout<<"str1.size:"<<str1.size()<<endl;       cou...

mac ios的c++11支持的问题

CXXFLAGS += -std=c++11 -stdlib=libc++LDFLAGS += -lc++ 是谁写的LDFLAGS也要用-std=c++11的,害的我调试了几个小时,就为了定位这一个问题 题外话:自带的libstdc++还没有支持c++11,所以要用激进派的libc++原文:http://www.cnblogs.com/zjzazym/p/4304017.html

【C++】子类在重写虚函数时,会覆盖父类的函数

//子类在重写虚函数时,会覆盖父类的函数 #include <iostream> using namespace std; class B { public:B(){cout<<"Create B!"<<endl;} public:virtual void fun(){cout<<"B::fun()"<<endl;}virtual void show(){cout<<"B::show()"<<endl;}void print(){cout<<"B::print()"<<endl;} };class D : public B { public:D(){cout<<"Create D!"<<endl;} public:void fun(){cout<<"D::fun()"<<endl;}void show(){cout<<"D::show()"<<endl;...

C++ EAT / Hook

EAT与IAT比较类似,我相信会IAT的肯定很多,起初我想写在C#上面 不过与C# 遍历DLL导出函数 的方法很相似,只是两者在内存中的映射方式不同而已Heh,首先我们需要把DLL映射到地址内存空间去 否则没有办法去置换函数,当然EAT有一些缺点,它必须在软件调用GetProcAddress函数之前替换DLL中的函数,所以则出现了对GetProcAddress函数的一个Hook,否则只可改变GetProcAddress返回的内容、是不是感到很惆怅 EAT全称为“Export address t...

c++第5次实验

项目2 数组选择#include<iostream> using namespace std; int main() {const int N=10;int A[N],B[N],i,j,k=0;cout<<"从键盘中输入十个数"<<endl;for(i=0;i<N;i++)cin>>A[i];for(i=0;i<N;i++){for(j=0;j<N;j++){if(i==j)continue;if(A[i]==A[j])break;if(j==N-1){B[k]=A[i];k++;}}}cout<<"数组B为:";for(i=0;i<k;i++)cout<<B[i]<<" ";return 0; }项目3——数组求和 #include <iostream> using namespace std; int main() {int i...

C++ 设置光标问题【代码】

一、隐藏光标1、引入头文件window.h2、 定义光标信息结构体变量 CONSOLE_CURSOR_INFO cursor info={1,0}; typedef struct _CONSOLE_CURSOR_INFO{ DWORD dwSize; // 光标百分比大小 BOOL bVisible; // 是否可见} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;3、 获取控制台句柄 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);4、 调用设置控制台光标信息函数 SetConsoleCursorInfo(handle,&cursor info);BOOL SetCon...

[C++]LeetCode: 130 Word Ladder (BFS)【代码】

题目: Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:Only one letter can be changed at a timeEach intermediate word must exist in the dictionary For example, Given:start = "hit"end = "cog"dict = ["hot","dot","dog","lot","log"] As one shortest transformation is "hit" -> "hot" -> "dot" -> "dog" -> "cog", return its...

(简单调用篇 02) 图像主体检测 - C++ 简单调用【代码】【图】

图像主体检测能检测出图片主体的坐标位置,可使用该接口裁剪出图像主体区域,配合图像识别接口提升识别精度。广泛适用于美图类 app、辅助智能识图等业务场景中。应用场景智能美图:根据用户上传照片进行主体检测,实现图像裁剪或背景虚化等功能,可应用于含美图功能 app 等业务场景中图像识别辅助:可使用图像主体检测裁剪出图像主体区域,配合图像识别接口提升识别精度接口描述用户向服务请求检测图像中的主体位置。请求说明HTTP ...

C++ QT note【代码】

1. YT_11_QDir#include <QCoreApplication> #include<QDir> #include<QFileInfo> #include<QString> #include<QDebug>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QDir mDir;//foreach (QFileInfo mItem, mDir.drives() )// qDebug() << mItem. absoluteFilePath();QString mPath = "C:/text/ggg";if(!mDir.exists(mPath)){mDir.mkpath(mPath);}else{qDebug() << "Already exists.";}return a.exec(); ...