05 2017 档案
摘要:所以不要这样 因为这里实参是通过传值方式传递的,会用默认构造函数创建实参的副本,副本的指针跟实参的指针指向空闲存储器中同一个字符串。 超出函数作用域后,副本会析构,使副本里 的指针 指向的内存被释放。 但实参还是指着那个位置,所以可能出错。 malloc/new/new[] 申请了一块内存的时候,编
阅读全文
摘要:friend 函数体一般放在类定义外 new跟delete是一对的 ,new创建的对象在空闲存储器中 编译器,不负责删除在空闲存储器中创建的对象 如果用new 后不用delete 在return之后,则不会执行析构函数 要用delete才可以析构再释放内存 delete可以用友元函数重载 复制构造函
阅读全文
摘要:内联声明只是建议 ,不一定就会内联。 http://www.voidcn.com/blog/u011327981/article/p-5006835.html
阅读全文
摘要:1 #include 2 int n=0; 3 using namespace std; 4 class Cbox{ 5 int a ; 6 int b ; 7 int c ; 8 public: 9 int g ; 10 Cbox(int d):Cbox(){cout<<"dddd"...
阅读全文
摘要:http://zh.cppreference.com/w/cpp/language/explicit explicit 指定符 C++ C++ 语言 类 explicit 指定符指定构造函数或转换函数 (C++11 起)不允许隐式转换或复制初始化。它仅可出现于在其类中定义的这种函数的 decl-sp
阅读全文
摘要:1 #include<iostream> 2 int n=0; 3 using namespace std; 4 class Cbox{ 5 int a ; 6 int b ; 7 int c ; 8 public: 9 int g ; 10 Cbox(int d):a(d),c(d),b(d){c
阅读全文
摘要:c++类 用冒号初始化对象(成员初始化列表) 成员初始化的顺序不同于它们在构造函数初始化列表中的顺序,而与它们在类定义中的顺序相同 (1)在创建派生类对象时,先调用基类的构造函数,然后调用派生类的构造函数;撤销对象时,析构函数被调用的顺序则相反。 (2)若派生类中包含对象成员,则派生类的构造函数初始
阅读全文
摘要:对于const或引用类型的类成员,唯一的初始化方式是在构造函数中使用成员函数初始化列表。构造函数体中的赋值语句是无效的 正确 错误
阅读全文
摘要:Cbox类中对象a 可以直接赋值给对象b,无论类中数据成员是私有还是共有。且在创建a时调用了一次构造函数,b调用的是另外的默认构造函数;
阅读全文
摘要:类里面重载运算符>>, 需要使用友元函数,而友元函数,不能作为虚函数。 所以,基类指针无法直接调用继承类里重构的 >> ; 使用类转换,能解决掉,基类指针 调用 继承类 函数的问题。 继承类调用基类友元函数 如 >> 只能用显示转换 class Person{ public: string a, b
阅读全文
浙公网安备 33010602011771号