如何在 C++ 中定义类外的构造函数?
构造函数是一种特殊类型的成员函数,其任务是初始化其类的对象。它没有返回类型,因此不能使用return关键字和 它在创建对象时被隐式调用。
- 构造函数也用于解决初始化问题。
- 创建对象后调用它。
- 与班级同名。
类外定义的构造函数
构造函数可以在类外定义,但必须在类内声明。在这里,您将使用范围解析运算符。
类外构造函数定义的语法:
class class_name {
public:
class_name();
};
// Constructor definition outside Class
class_name::class_name()
{
}
例子:
C++
// C++ program to define
// constructor outside the
// class
#include
using namespace std;
class GeeksForGeeks {
public:
int x, y;
// Constructor declaration
GeeksForGeeks(int, int);
// Function to print values
void show_x_y() {
cout << x << " " << y << endl;
}
};
// Constructor definition
GeeksForGeeks::GeeksForGeeks(int a, int b)
{
x = a;
y = b;
cout << "Constructor called" << endl;
}
// Driver code
int main()
{
GeeksForGeeks obj(2, 3);
obj.show_x_y();
return 0;
}
C++
// Header file
// Save this code with .h extension
// For example- GeeksForGeeks.h
#include
using namespace std;
class ClassG {
public:
int a, b;
// Constructor declaration
ClassG();
// Function to print values
void show()
{
cout << a << " " << b;
}
};
C++
// Adding GeeksForGeeks.h File
#include"GeeksForGeeks.h"
#include
using namespace std;
// Constructor definition
ClassG::ClassG()
{
a = 45;
b = 23;
}
// Driver code
int main()
{
// This will call the
// constructor
ClassG obj;
// Function call
obj.show();
}
输出
Constructor called
2 3
在类外定义构造函数的原因
以下是最好在类外部定义构造函数的一些原因:
- 无编译时依赖:可以将类定义放在头文件中,将构造函数定义放在将要编译的实现文件中。
- 可读性和更简洁的代码:主要原因是在类外定义构造函数是为了可读性。因为可以将声明分离到头文件中,将实现分离到源文件中。
示例: GeeksForGeeks.h
C++
// Header file
// Save this code with .h extension
// For example- GeeksForGeeks.h
#include
using namespace std;
class ClassG {
public:
int a, b;
// Constructor declaration
ClassG();
// Function to print values
void show()
{
cout << a << " " << b;
}
};
文件: geek.cpp
C++
// Adding GeeksForGeeks.h File
#include"GeeksForGeeks.h"
#include
using namespace std;
// Constructor definition
ClassG::ClassG()
{
a = 45;
b = 23;
}
// Driver code
int main()
{
// This will call the
// constructor
ClassG obj;
// Function call
obj.show();
}
输出:
45 23