我很难过,我现在正在用C ++学习课程,这里有问题,我必须声明和定义构造函数,我不知道我在做什么错,我试过但是无法得到结果请帮助< / p>
#include <iostream>
using namespace std;
class exercise
{
public:
//declaration: constructor of class exercise
int public_var;
int get_private_var();
private:
int private_var;
};
//definition: constructor of class exercise
int exercise::get_private_var()
{
return private_var;
}
int main()
{
exercise object(2,3);
int pub_var = object.public_var;
int pri_var = object.get_private_var();
cout << pub_var <<' '<<pri_var<<endl;
return 0;
}
答案 0 :(得分:2)
示例构造函数将是:
class exercise
{
public:
exercise(int,int);
int public_var;
int get_private_var();
private:
int private_var;
};
//Constructor definition
exercise::exercise(int a, int b)
{
public_var = a;
private_var = b
}
//rest of member functions
答案 1 :(得分:0)
为了声明构造函数,你应该
class exercise
{
public:
//declaration: constructor of class exercise
exercise();
int public_var;
int get_private_var();
private:
int private_var;
};
为了实现(通常在.cpp文件中) 你应该:
exercise::exercise()
{
//your code here
}
祝你好运
答案 2 :(得分:0)
get_private_var
不是构造函数。当你执行object.get_private_var()
时调用它的函数 - 它只是一个典型的成员函数。
构造函数是在构造对象时调用的函数(有道理,对吧?)。在您的情况下,它将在您执行时使用:
exercise object(2,3);
此行构造一个名为exercise
的{{1}}对象,并将值object
和2
传递给其构造函数。您似乎希望将这些值分配给3
和public_var
成员。
首先,您需要声明构造函数:
private_var
如您所见,构造函数的声明与任何其他成员函数一样,但它没有返回类型。这是有道理的,因为返回类型显然是类本身。这里我指定了两个参数。
现在我们需要定义构造函数,类似于您定义class exercise
{
public:
exercise(int, int); //declaration: constructor of class exercise
int public_var;
int get_private_var();
private:
int private_var;
};
的方式,但同样没有返回类型:
get_private_var
然后你就完成了。此构造函数只是将传递给它的值分配给公共成员和私有成员。
但是,使用成员初始化列表实现此构造函数的方法略好一些:
exercise::exercise(int x, int y)
{
public_var = x;
private_var = y;
}
答案 3 :(得分:0)
以下是使用构造函数
构建类的方法class a
{
public:
int pubvar;
a() //default constructor
{
pubvar =1;
privar =2;
}
a(int one, int two) //constructor with intializing
{
pubvar = one;
privar = two;
}
private:
int privar;
}
现在默认初始化是
a myclass;
并使用您的变量进行初始化
a myclass(4,2);
希望有所帮助