一文带你学习一下C++中的构造函数

Winona ·
更新时间:2024-09-20
· 520 次阅读

目录

C++构造函数学习

1.带参数的构造函数

2.多个构造函数

3.拷贝构造函数

C++构造函数学习

构造函数是一种特殊的函数,它用于在创建对象时初始化对象的值。所有的类都有构造函数,但如果没有自定义,则会使用默认构造函数。在本文中,我们将学习C++的构造函数以及如何使用它们来创建对象。

构造函数的基本语法是在声明类时定义,语法如下:

class MyClass{ public: MyClass(); //构造函数的声明 private: // 成员变量声明 }; MyClass::MyClass(){ // 构造函数的具体实现 }

MyClass()是构造函数的名称,它与类名相同且没有返回类型。构造函数的主体用大括号包括,并进行初始化或其它操作。

默认构造函数是一种不带任何参数的构造函数,如果没有定义任何构造函数,则编译器将使用默认构造函数。例如:

class MyClass{ public: // 默认构造函数 private: // 成员变量声明 }; MyClass::MyClass(){ // 参数为空 }

下面介绍一些常见的构造函数用法。

1.带参数的构造函数

带参数的构造函数允许在实例化对象时传递参数。例如,下面的代码演示了如何使用带参数的构造函数来初始化姓名和年龄:

#include <iostream> using namespace std; class Person{ public: string name; int age; Person(string _name, int _age) { name = _name; age = _age; } }; int main() { Person p1("john", 18); cout << "name: " << p1.name << endl; cout << "age: " << p1.age << endl; return 0; } 2.多个构造函数

一个类可以有多个构造函数,每个构造函数可以有不同的参数列表。例如,以下代码演示了一个包含两个构造函数的类:

#include <iostream> using namespace std; class Person{ public: string name; int age; Person(string _name, int _age) { name = _name; age = _age; } Person() { name = "unknow"; age = 0; } }; int main() { Person p1("john", 18); cout << "name: " << p1.name << endl; cout << "age: " << p1.age << endl; Person p2; cout << "name: " << p2.name << endl; cout << "age: " << p2.age << endl; return 0; } 3.拷贝构造函数

拷贝构造函数是带有单个参数的构造函数,它接受同一类型的对象作为输入,并初始化一个新的对象。例如,以下代码演示了一个包含拷贝构造函数的类:

#include <iostream> using namespace std; class Person{ public: string name; int age; Person() { name = "unknow"; age = 0; } Person(const Person &p) { name = p.name; age = p.age; } }; int main() { Person p1("john", 18); Person p2(p1); cout << "name: " << p2.name << endl; cout << "age: " << p2.age << endl; return 0; }

以上就是一文带你学习一下C++中的构造函数的详细内容,更多关于C++构造函数的资料请关注软件开发网其它相关文章!



c+ 学习 函数 C++ 构造函数

需要 登录 后方可回复, 如果你还没有账号请 注册新账号