C++之 构造函数调用规则
来源:互联网 发布:画框图软件 编辑:程序博客网 时间:2024/05/18 18:55
1)当类中没有定义任何一个构造函数时,C++编译器会提供默认无参构造函数和默认拷贝构造函数。
2)当类中定义了拷贝构造函数时,C++编译器不会提供无参构造函数。
3)当类中定义了任意的非拷贝构造函数,即类中提供了有参构造函数,C++编译器不会提供无参构造函数。
4)默认拷贝构造函数成员变量只进行简单赋值
总结:只要你写了构造函数,那么你就必须要用!!!
// 构造函数使用规则.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class Location{public:Location(int xx, int yy){X = xx; Y = yy; cout << "Constructor Object.\n";}Location(const Location& obj){//copy构造函数X = obj.X;Y = obj.Y;}~Location(){cout << X << "," << Y << " " << "Object destroyed." << endl;}int GetX(){ return X; }int GetY(){ return Y; }private:int X;int Y;};int _tmain(int argc, _TCHAR* argv[]){Location l1;//会报错 error C2512:“Location”:没有合适的默认构造函数可用return 0;}
// 构造函数使用规则.cpp : 定义控制台应用程序的入口点。#include <iostream>using namespace std;class Location{public:Location(int xx=0, int yy=0){X = xx; Y = yy; cout << "Constructor Object.\n";}Location(const Location& obj){//copy构造函数X = obj.X;Y = obj.Y;}~Location(){cout << X << "," << Y << " " << "Object destroyed." << endl;}int GetX(){ return X; }int GetY(){ return Y; }private:int X;int Y;};int _tmain(int argc, _TCHAR* argv[]){Location l1;//不会报错return 0;}
0 0
- C++之 构造函数调用规则
- C语言编程之函数调用规则
- 构造函数调用规则研究
- C++构造函数调用规则
- 构造函数的调用规则
- 构造函数的调用规则
- c++ 构造函数 继承 调用规则
- C/C++函数调用规则
- C/C++函数调用规则
- C/C++函数调用规则
- C/C++函数调用规则
- JNI之 c/c++调用java构造函数
- 【C#】 之 构造函数
- C,C++,VC++函数调用规则
- c++构造函数和析构函数调用规则
- C++:构造函数中调用虚函数
- C++:构造函数中调用虚函数
- C语言的函数调用规则
- MFC几个重要的基类
- 3261: 最大异或和 可持久化trie
- 欢迎使用CSDN-markdown编辑器
- 松哥推荐的nginx配置教程
- 8VC Venture Cup 2016 - Elimination Round总结
- C++之 构造函数调用规则
- VBA单元格拷贝
- [NOIP 2010] 引水入城
- Android线程一、AsyncTask使用简介
- UVA1428 Ping pong(树状数组)
- hrbust 1216/哈理工oj 1216 数的划分【dp】
- 笔记:Deep multi patch aggregation network for image style, aesthetics and quality estimation
- Linux应用程序地址布局
- Spark MLlib 1.6 -- 分类和回归篇