您的位置:首页 > 编程语言 > C语言/C++

C++ 知识点备忘

2016-03-07 20:24 369 查看
关键字:

explicit 不允许隐式的转化(参考:/article/4810786.html)

例如:

class String {
String ( int n ); //本意是预先分配n个字节给字符串
String ( const char* p ); // 用C风格的字符串p作为初始化值
}


下面两种写法编译通过,是正常的初始化方式:

String s2 ( 10 );   //OK 分配10个字节的空字符串
String s3 = String ( 10 ); //OK 分配10个字节的空字符串


以下声明方式为隐式的声明方式:

String s4 = 10; //编译通过,也是分配10个字节的空字符串
String s5 = ‘a’; //编译通过,分配int(‘a’)个字节的空字符串


如果加入explicit

class String {
explicit String ( int n ); //本意是预先分配n个字节给字符串
String ( const char* p ); // 用C风格的字符串p作为初始化值
}


只能用正常的声明方式,不能隐式的声明了。

this 指针

每个对象占用的存储空间仅为该对象的数据成员,不包括成员函数代码所占空间。

不同对象可以调用同一个成员函数,因此需要this指针,指向当前被调用的成员函数所在对象的起始地址,从而获取该对象的数据和成员函数,甚至其本身。

virtual 虚函数

通过指向派生类的基类指针访问派生类中同名覆盖成员函数,需要将基类的同名函数声明为虚函数。

获取最小精度函数:

#include <limits>

//.
//.
//.
std::numeric_limits<Dtyoe>::min();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: