首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C++实现一个简单String类

const String& other); friend std::ostream& operator<<(std::ostream& output, const String& str);...cout << "默认构造函数(" << *this << ")\n"; } String::String(const String& other) { // 在类成员函数中可以访问同类型实例私有变量...* 赋值运算符是将对象值复制给一个已经存在实例 */ String& String::operator=(const String& other) { if (this !..._buffer); } cout << "拷贝赋值操作(" << *this << ")\n"; return *this; } /* * 移动赋值操作即把参数进来对象所有权转移到..._buffer); } } /* * 关于是返回对象本身还是返回对象引用 * 如果函数返回在函数中创建临时对象,则不要使用引用 * 如果函数返回是通过引用或指针传递给对象,则应当按引用返回对象

1.6K10

C++设计模式——Chain of Responsibility职责链模式

职责链模式需要使用多个对象,其中每个对象要么处理请求,要么请求传递给下一个对象,该模式因此可以实现发送方与接收方松散耦合。...2.具体处理器(ConcreteHandler): 继承自抽象处理器,包含了对处理请求接口具体实现,负责处理特定类型请求或请求传递给下一个处理器。...组件之间工作步骤如下: 1.客户端请求传递给职责链中第一个处理器。 2.第一个处理器尝试处理请求。如果处理成功,则结束处理过程并返回结果,如果无法处理,则将请求转发给下一个处理器。...{ public: void log(const std::string& message) override { std::cerr << "Info: " << message...ErrorLogger: public Logger{ public: void log(const std::string& message) override { std:

10110

C++:String模拟实现

但是要注意是,这里就不能像传统一样用const引用了,否则不想要空间就给到我们赋值对象了,这边就得用参,这样被交换就只是一个临时拷贝,不想要空间随着栈帧结束被销毁。...,一个是const引用,一个参,所以可以同时存在。...6.1 流提取 //重载<< std::ostream& operator<< (std::ostream& out, const string& s) { //可以用范围for,也可以用迭代器...>>只会读取到空格或者换行结束 2.读取前会清理掉原空间数据 //重载>> std::istream& operator>> (std::istream& in, string& s) {...string& s) { //读取前要先清理掉原来存在字符 s.clear(); //用get获取字符 char ch = in.get(); //先用一个数组存起来,再一起加

9110
领券