C++
wjxuanxuan
这个作者很懒,什么都没留下…
展开
-
C++重载运算符需要是const的情况
#include class twelfth_class_1{int i;public:twelfth_class_1(int ii=0 ){i = ii;}const twelfth_class_1 operator+(const twelfth_class_1 &tc1)const {twelfth_class_1 x(this->i+tc1.i);retu原创 2016-08-30 11:43:56 · 3615 阅读 · 0 评论 -
cpp拷贝构造函数
1.当类含有指针时,必须自定义拷贝构造函数。 坑点: class DoubleTest { double *d; public: DoubleTest() :d(new double(123)) { cout << "constructor" << endl; } //DoubleTest(cons原创 2017-06-10 14:13:08 · 844 阅读 · 0 评论 -
C++ 函数参数、返回值效率测试
C++ 函数参数、返回值效率测试原创 2017-06-09 22:21:25 · 1057 阅读 · 0 评论 -
数组初始化
void insetStructFunc() { struct Inset { int value; Inset() :value(0) {}; }; Inset in_array[10]; for (int i = 0; i < 10; i++) { cout <<原创 2017-06-09 14:46:34 · 209 阅读 · 0 评论 -
用sizeof获得class里面 static数组的大小.....
class AboutString { string str; public: explicit AboutString(const string& str1 = "haha") :str(str1) {}; void print() const{ cout << str << endl; } }原创 2017-06-09 14:30:57 · 639 阅读 · 0 评论 -
在一个类的函数中声明static变量是个啥
class Monitor { public: void func() { static int funcRunCount; funcRunCount++ ; cout << "run func " << funcRunCount << endl; } }; void fun原创 2017-06-09 11:34:33 · 914 阅读 · 0 评论 -
反转链表
其实一直没写过链表。真是灯下黑,要写的时候突然发现对指针的概念又有点懵逼了。。剑指OFFER里面 对链表的函数调用有两种形式(LinkNode** phead)(LinkNode* phead) 第一个表示传入的时候头指针本身,操作时一般解引用*phead,并命名一个头节点的指针来操作要方便点。不然用phead指针在语义上正确,但是操作起来会很麻烦。比如对LinkNode **phead原创 2017-06-19 22:10:58 · 187 阅读 · 0 评论 -
懵逼的问题:父类没有重载=,子类需要重载=咋办?
class Problem { int p; public: Problem(int ii):p(ii) { cout << "problem constructor" << endl; } Problem(Problem& pp) { p = pp.p;原创 2017-06-19 00:12:59 · 315 阅读 · 0 评论 -
名字隐藏对虚函数也成立
class funClass { public: virtual void print() { cout << "print" << endl; } virtual void print(int) { cout << "print int" << endl; } vi原创 2017-06-16 23:39:36 · 227 阅读 · 0 评论 -
组合与继承
1.当父类没有默认构造函数时,子类必须在初始化成员列表里面显示调用构造函数 class Vehicle { int xx; public: Vehicle(int x) :xx(x){} int getValue() { return xx; } }; class Car :publi原创 2017-06-16 23:37:01 · 246 阅读 · 0 评论 -
类的变量名 与 函数名不得相同,不然会报重定义的错误
class Dog :public Pet { string name; public: Dog(const string& petName) :Pet(petName) { } string name() const { return Pet::name(); } virt原创 2017-06-15 20:41:58 · 1067 阅读 · 0 评论 -
虚析构函数,纯虚析构函数~~~
1.基类的虚构函数必须声明为虚的。class Rodent { public: virtual void eat() { cout << "Rodent eat...." << endl; } virtual void run() { cout << "Rodent run..." << endl;原创 2017-06-15 20:07:53 · 246 阅读 · 0 评论 -
清除vector中的非smartpointer
容器一大坑,对放入的指针没有所有权。如果用户不自己释放,将引起内存泄漏。 例程如下: class Counted { int id; static int count; public: Counted() :id(count++) { cout << "Counted id = " << id << ends;原创 2017-06-12 12:09:51 · 212 阅读 · 0 评论