1

下面是我的 .h 文件

#include <iostream>
#include <string>

using namespace std;

class ClassTwo
{
private:
string sType;
int x,y;
public:
void setSType(string);
void setX(int);
void setY(int);

string getSType();
int getX();
int getY();
};

我想构造 2 构造函数。

其中构造函数 1 将无参数,将所有 int 值初始化为 0,将字符串初始化为空字符串。

构造函数 2 将使用 get set 方法接收参数,即 sType、x 和 y。

但我如何做到这一点。我应该在我的 cpp 文件或 .h 文件中对此进行编码吗

4

2 回答 2

1

对于默认构造函数:

ClassTwo() : sType(), x(), y() {}

为了清楚起见,您可以选择更明确的初始化:

ClassTwo() : sType(""), x(0), y(0) {}

也可以省略字符串的初始化,默认为"".

对于第二个构造函数,最好在没有设置器的情况下实现:

ClassTwo(const std::string& s, int x, int y) : sType(s), x(x), y(y) {}

是否在标头或 .cpp 中实现取决于您。我认为在标头中实现如此简单的构造函数没有任何缺点。

我建议您对数据成员使用命名约定。诸如x和之y类的名称可能会导致代码中其他地方发生冲突。

于 2012-10-07T09:28:43.390 回答
1

标题用于定义。包含标头的代码不必知道任何实现(除非您使用的是不同的模板......)

无论如何,2个构造函数:

public:
ClassTwo() : sType(""), x(0), y(0) {}
ClassTwo(string _type) : sType(_type), x(0), y(0) {}
于 2012-10-07T09:30:34.640 回答