通过提及对象本身返回对象字段
Return object field by mention the object itself
我想从"string.h"(STL)创建一个类似"string"的类。我的班级是:
class MyChar
{
char *Buff;
public:
/* Some constructors and other helpful methods */
};
我的问题是,我不知道如何做以下事情:
#include <iostream>
int main()
{
MyChar str;
str = "My new string";
cout << str;
}
我不想提到"str.Buff"或"str.getBuffer()"或其他东西…"力量"。和"string"类一样
您需要实现正确的构造函数和赋值操作符。在这种情况下,以const char*
为参数的变体。您还需要重载输出操作符。
你绝对需要学习三法则和动态内存管理
您需要重载类的赋值操作符=
和ostream操作符<<
。
如果你想这样使用你的类,你需要一个所谓的"赋值操作符"。维基百科上有一篇很好的文章。
基本上你要做的是将右手边(字符数组)分配给左手边(你的类实例)。您需要重载=
操作符,或者像注释所说的,重载<<
操作符。
编辑:既然OP因为我没有"正确"回答他的模糊问题而拒绝了我,这里是<<
过载的一个片段:
std::ostream& operator<<(std::ostream& out, const MyChar& buf) {
out << buf.Buf;
return out;
}
你可以这样使用:
std::cout << MyChar << std::endl;
当然,你的类现在有很多问题要解决,也就是说,你没有为字符数组分配数组空间,祝你好运!
您需要添加这样的内容:[未经过测试,但会给您一个想法]
void operator=(const char *str )
{
strcpy(Buff,feet, str);
}
下面的应该在类定义之外。
ostream& operator<<(ostream& os, const MyChar& mch)
{
os << mch.Buff;
return os;
}
将下列语句添加到您的类中。朋友ostream&operator<& lt; (ostream&2、const MyChar&妇幼保健);
相关文章:
- 如何通过另一个对象中的命令正确地从一个对象返回数据
- 如何访问从 COM 对象返回的 VARIANT 数据类型中的安全数组C++?
- 从我的对象返回静态数组
- 将unique_ptr作为<Object>unique_ptr<常量对象返回>
- 从右值对象返回成员
- 视觉对象 返回 C++ 中的双精度值
- 为什么类型为 sf::Text 的对象返回不同的 getPosition().y 和 getLocalBounds().
- std::min_element 从类对象返回意外结果
- C++无效的对象返回语义
- const引用是否延长临时对象返回的临时对象的寿命
- 将 NULL 作为对象返回时未收到任何警告
- 如何在 C# 中从 com 对象返回数组(double[])
- 从重载运算符返回引用,并使用临时对象返回表达式
- Cin 对象返回值 c++
- 将变量作为类对象返回
- 使用可更改对象返回只读的最佳方法是什么
- 如何在Cython中从另一个包装对象返回包装的c++对象
- 当对象返回时,c++动态数组被清除
- 从带有动态字段的函数、对象返回
- 从堆栈上的匿名对象返回对*this的引用