05 2017 档案

该文被密码保护。
posted @ 2017-05-29 10:19 ff_d
摘要:所以不要这样 因为这里实参是通过传值方式传递的,会用默认构造函数创建实参的副本,副本的指针跟实参的指针指向空闲存储器中同一个字符串。 超出函数作用域后,副本会析构,使副本里 的指针 指向的内存被释放。 但实参还是指着那个位置,所以可能出错。 malloc/new/new[] 申请了一块内存的时候,编 阅读全文
posted @ 2017-05-28 11:12 ff_d 阅读(1038) 评论(0) 推荐(0)
摘要:friend 函数体一般放在类定义外 new跟delete是一对的 ,new创建的对象在空闲存储器中 编译器,不负责删除在空闲存储器中创建的对象 如果用new 后不用delete 在return之后,则不会执行析构函数 要用delete才可以析构再释放内存 delete可以用友元函数重载 复制构造函 阅读全文
posted @ 2017-05-26 23:54 ff_d 阅读(112) 评论(0) 推荐(0)
摘要:内联声明只是建议 ,不一定就会内联。 http://www.voidcn.com/blog/u011327981/article/p-5006835.html 阅读全文
posted @ 2017-05-26 17:49 ff_d 阅读(106) 评论(0) 推荐(0)
摘要: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"... 阅读全文
posted @ 2017-05-25 19:54 ff_d 阅读(249) 评论(0) 推荐(0)
摘要:http://zh.cppreference.com/w/cpp/language/explicit explicit 指定符 C++ C++ 语言 类 explicit 指定符指定构造函数或转换函数 (C++11 起)不允许隐式转换或复制初始化。它仅可出现于在其类中定义的这种函数的 decl-sp 阅读全文
posted @ 2017-05-25 18:59 ff_d 阅读(201) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2017-05-25 18:52 ff_d 阅读(222) 评论(0) 推荐(0)
摘要:c++类 用冒号初始化对象(成员初始化列表) 成员初始化的顺序不同于它们在构造函数初始化列表中的顺序,而与它们在类定义中的顺序相同 (1)在创建派生类对象时,先调用基类的构造函数,然后调用派生类的构造函数;撤销对象时,析构函数被调用的顺序则相反。 (2)若派生类中包含对象成员,则派生类的构造函数初始 阅读全文
posted @ 2017-05-24 23:26 ff_d 阅读(1098) 评论(0) 推荐(0)
摘要:对于const或引用类型的类成员,唯一的初始化方式是在构造函数中使用成员函数初始化列表。构造函数体中的赋值语句是无效的 正确 错误 阅读全文
posted @ 2017-05-24 23:15 ff_d 阅读(448) 评论(0) 推荐(0)
摘要:Cbox类中对象a 可以直接赋值给对象b,无论类中数据成员是私有还是共有。且在创建a时调用了一次构造函数,b调用的是另外的默认构造函数; 阅读全文
posted @ 2017-05-24 23:08 ff_d 阅读(319) 评论(0) 推荐(0)
摘要:类里面重载运算符>>, 需要使用友元函数,而友元函数,不能作为虚函数。 所以,基类指针无法直接调用继承类里重构的 >> ; 使用类转换,能解决掉,基类指针 调用 继承类 函数的问题。 继承类调用基类友元函数 如 >> 只能用显示转换 class Person{ public: string a, b 阅读全文
posted @ 2017-05-09 23:32 ff_d 阅读(2946) 评论(0) 推荐(0)