在学习C\C++的过程中有两组概念需要注意:声明(declarartion)和定义(definition)、初始化(initialization)和赋值(assginment)。C语言中初始化和赋值可以认为是一样的,但在C++中这两个是不同的概念。
/*
定义和声明
*/
int i; //全局变量 同时声明和定义i和j
int j = 10;
extern int k; //declaration
enum fruit{ apple = 1, banana, pear }; //declaration enumeration fruit
//declaration class Person
class Person{
private:
const string name;
public:
Person(const string& sname) : name(sname) { ... }//初始化参数列表
Person(); //default constructor
Person(const Person&);
virtual ~Person();
}
void func(int i); //declaration
void func(int i){ //definition
cout << i <<endl;
}
/*
初始化和赋值
*/
Person p1; //调用默认构造函数
Person p2(p1); //调用拷贝构造函数Person(const Person&)进行初始化
Person p2 = p1; //赋值,浅拷贝,非静态成员依次赋值
Person p3("JAY"); //初始化参数列表
标签:初始化,定义,int,Person,declaration,赋值
From: https://www.cnblogs.com/qianxiaohan/p/18159559