C++构造函数

  1. #include<iostream>
  2. usingnamespace std;
  3. classClassTest
  4. {
  5. public:
  6. ClassTest()
  7. {
  8. cout <<"ClassTest()"<<endl;
  9. }
  10. ClassTest(int i)
  11. {
  12. cout <<"ClassTest(int)"<<endl;
  13. value2 = i;
  14. }
  15. ClassTest(int i,int j): value(i), value2(j)
  16. {
  17. cout <<"ClassTest(int, int)"<<endl;
  18. }
  19. private:
  20. int value =0;
  21. int value2 =0;
  22. };
  • 上面是类的声明与实现,接下来我们来定义类对象。
  1. int main()
  2. {
  3. ClassTest test;//使用默认构造函数(即ClassTest())
  4. //ClassTest test();/*这里被认为是一个函数的声明,而不是定义对象*/
  5. ClassTest test1(1);//ClassTest(int)
  6. ClassTest test2(1,2);//ClassTest(int, int)
  7. ClassTest test3 = ClassTest(); //先调用ClassTest()构建一个临时变量,然后将这个临时变量通过拷贝构造函数赋值给test3
  8. return0;
  9. }
  • 定义类指针(引用这里不再说明)
  1. int main()
  2. {
  3. ClassTest* pClass =newClassTest;
  4. ClassTest* pClass1 =newClassTest();
  5. ClassTest* pClass2 =newClassTest(1);
  6. ClassTest* pClass3 =newClassTest(1,2);
  7. delete pClass;
  8. delete pClass1;
  9. delete pClass2;
  10. delete pclass3;
  11. return0;
  12. }
  • 其中第一句和第二句是等价的,它们调用的是同一个构造函数。
 





原文地址:https://www.cnblogs.com/fengkang1008/p/4652255.html