如何在C++中为类返回默认类型
How do you in C++ of returning a default type for a class
我有一个包含变量(apple)的类。我如何配置该类,以便默认返回类型if(const char*),有什么建议吗?
class myClass {
public char *apple;
}
int main()
{
myClass c;
printf("%srn",c);
}
打印类的一个更好的解决方案是:
class Apple {
public:
const char* apple;
};
ostream& operator<<(ostream& stream, const Apple& apple) {
return stream << apple.apple;
};
int main() {
Apple a;
a.apple = "Hello world";
cout << a << endl;
return 0;
}
我相信您可能想要用户定义的转换,这将需要重载成员operator const char*
,例如
operator const char *() const { return apple; }
然后你可以做:
myClass a;
const char *c = a; //c becomes a->apple
但这个问题的确切意图还不是很清楚。
不能100%确定这是否是您的要求:
首先,代码是错误的,看起来像Java
。在public
之后需要:
使用构造函数
class myClass {
public:
myClass() : apple("Apple"){}
myClass(const char *apple) : apple(apple){}
// please note I changed it to be `const`,
// to avoid use of `strcpy()` or similar.
const char *apple;
}
int main() {
myClass c;
printf("%srn", c.apple);
}
使用";内联";说明符
这不能用char *
来完成,但如果你使用std::string
,那么你可以这样做:
class myClass {
public:
myClass(const char *apple) : apple(apple){}
// no need to be `const`...
std::string apple = "Apple";
}
int main() {
myClass c;
printf("%srn", c.apple.c_str() );
}
相关文章:
- 格式化浮点值:返回默认值
- 默认函数可以返回自动吗?
- 函数不返回默认值
- 对于具有引用返回类型的搜索算法,默认返回值应该是什么?
- 可以通过常量引用返回默认参数的值吗?
- 如何仅覆盖一个EXPECT_CALL的默认ON_CALL操作,并在以后返回到默认操作
- 使用返回不完整类型的函数作为默认参数
- 从模板函数返回默认构造或无效
- 返回类型为 int 的函数中的默认返回值 1?
- 不带成员函数的类实例的默认返回
- 谷歌嘲笑!我的测试出错.默认情况下,呼叫将返回调用
- C++中的函数是否有任何默认返回类型
- std::vector::p ush_back(T&&) 在直接传递返回 T&& 的函数时创建默认构造值 T
- 在返回语句中调用默认构造函数
- 如何通过指向返回另一个函数的函数的指针调用具有默认参数的函数
- 函数不返回默认值C
- C 程序返回默认值0
- 返回默认构造值的模板函数
- 如何在C++中为类返回默认类型
- 如何优雅地返回默认初始化的对象