C++ 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。本文主要介绍C++ 构造函数。

1、构造函数

C++ 中的构造函数是一种特殊的方法,当创建类的对象时会自动调用该方法。

要创建构造函数,请使用与类相同的名称,后跟括号():

例如,

#include<iostream> 
using namespace std;

class MyClass {     // class
  public:           // 访问修饰符
    MyClass() {     // 构造函数
      cout << "Hello World!";
    }
};
int main() {
  MyClass myObj;    // 创建MyClass的一个对象(这将调用构造函数)
  return 0;
}

注意:构造函数与类具有相同的名称,始终为public,并且没有任何返回值。

2、构造函数参数

构造函数还可以接受参数(就像常规函数一样),这对于设置属性的初始值很有用。

例如,

#include<iostream> 
using namespace std;

class Person {        // class
  public:          // 访问修饰符
    string Name;  
    string Birthday;  
    int Age;      
    Person(string x, string y, int z) { // Constructor with parameters
      Name = x;
      Birthday = y;
      Age = z;
    }
};
int main() {
  Person obj1("C", "1999-01-01", 1999);
  Person obj2("C++", "1999-01-01", 1969);
  // Print values
  cout << obj1.Name << " " << obj1.Birthday << " " << obj1.Age << "\n";
  cout << obj2.Name << " " << obj2.Birthday << " " << obj2.Age << "\n";
  return 0;
}

就像函数一样,构造函数也可以在类之外定义。首先,在类的内部声明构造函数,然后在类的外部定义它,指定类的名称,后跟作用域解析符::,再后跟构造函数的名称(与类相同):

例如,

#include<iostream> 
using namespace std;

class Person {        // class
  public:          // 访问修饰符
    string Name;  
    string Birthday;  
    int Age;      
    Person(string x, string y, int z);
};
// 类外的构造函数定义
Person::Person(string x, string y, int z) {
  Name = x;
  Birthday = y;
  Age = z;
}
int main() {
  Person obj1("C", "1999-01-01", 1999);
  Person obj2("C++", "1999-01-01", 1969);
  // Print values
  cout << obj1.Name << " " << obj1.Birthday << " " << obj1.Age << "\n";
  cout << obj2.Name << " " << obj2.Birthday << " " << obj2.Age << "\n";
  return 0;
}

推荐文档