让我考虑以下例子!
namespace nSpace {
class Addition {
int val1;
int val2;
public:
Addition(int firstVal, int secondVal) {
this.val1 = firstVal;
this.val2 = secondval;
}
void sum() {
cout<<"sum of val1 and val2 = " <<this.val1 + this.val2<<"\n";
}
};
Addition Addobj = new Addition(2, 3); // Is it possible ? if not, any other way ?
Addobj.sum();
}
如果没有,请告诉我原因。
谢谢!
答案 0 :(得分:1)
这不是Java,你只需要行
Addition Addobj(2, 3);
答案 1 :(得分:1)
nSpace::Addition &Addobj = *(new nSpace::Addition(2, 3));
Addobj.sum();
//don't forget to delete Addobj! (delete &Addobj;)
答案 2 :(得分:0)
是可能的,只有命名空间级别的对象是可能的,但你不能有执行语句,
Addition Addobj = Addition(2, 3); // Is valid
Addobj.sum(); //not valid
//You got few error, below is working code
namespace nSpace {
class Addition {
int val1;
int val2;
public:
Addition(int firstVal, int secondVal) {
this->val1 = firstVal;
this->val2 = secondVal;
cout<<"sum of val1 and val2 = ";
}
void sum() {
cout<<"sum of val1 and val2 = " <<this->val1 + this->val2<<"\n";
}
} ;
Addition Addobj = Addition(2, 3); // Is it possible ? yes
//Addobj->sum();// this does not work
}
void main()
{
}
答案 3 :(得分:0)
这在函数之外是合法的:
Addition *Addobj = new Addition(2, 3);
因为它被认为是变量定义,它可以在函数之外完成(它将定义一个全局变量)。请注意,由于您使用的是new,因此变量的类型实际上必须是指针;
另一方面,这在功能之外是不合法的
Addobj->sum(); // Illegal outside a function
原因是这是一个声明。语句和表达式在函数内部都是合法的。
答案 4 :(得分:-1)
您不能使用邮政编码。 原因很简单,你不在任何函数体内执行你的代码。 new()运算符和函数sum()不能在全局级别被称为lhs