我对C ++编程有一点怀疑。
c ++中语句class a(b)
的含义是什么,以及如何实现它?
我们可以声明一个这样的类吗?
答案 0 :(得分:3)
class a(b)
在C ++中是非法的,会导致编译错误。
我不确定你的意思是什么。也许修改你的问题更具体或包括更多的代码和上下文?
答案 1 :(得分:0)
我同意其他人的意见;看来你有点困惑。让我们看看这是否有帮助。
在C ++类中,a(b)是非法的。但是,如果您希望类a接受参数b,您将在类中创建一个构造函数,如下所示
#include <iostream>
class a
{
/**
* Constructors have no type and are setup like a normal function. (They _MUST_
* have the same name as their class/struct)
* Generally, the class/struct is located within a ".h" while the actual code
* is in a corresponding ".cpp" or ".cxx" file. However, in this example
* I simply combined the class and its code function definitions.
*/
a(char* b)
{
std::cout<< b << std::endl;
}
~a(){} // Same thing with destructors
};
在这种情况下,参数“b”被定义为char *,因此您将按如下方式初始化此类
int main()
{
char* bptr = "test_for_pointer"; // Our variable to pass
char* b = "test_non_pointer";
a *ptr = new a(bptr); // Pointer declaration
a tclass(b); // <--- Is this what you were looking to do?
// At this point, because of the constructors, both string should have been printed.
delete ptr; // Clean up the pointer
ptr = NULL;
return 0;
}
请注意,在示例中,当声明变量以保存类数据时,我们将其类型声明为“a”并使用“new a()”(如果它是指针)或“VAR_NAME(CONSTRUCTOR_PARAMETERS_LIKE_NORMAL_FUNCTION)”初始化
我希望这有帮助!从C ++开始并不容易 - 你必须做很多阅读,但你会得到它!
祝你好运!