C++ 隐含的this 指针

简介:

c++primer   页数:376-379 备份, 很有嚼头

复制代码
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

class Screen
{
    public:
        typedef string::size_type index;
        Screen(index r, index c) : row(r), col(c), contents(r * c, 0) {};
        Screen& set(index r, index c, char val);
        Screen& set(char val);
        Screen& move(index r, index c);
        Screen& display();
        const Screen& display() const;
    private:
        string contents;
        index cursor;
        index row, col;
        void do_display() const
        { cout << contents << endl;}

};

Screen& Screen::set(index r, index c, char val)
{
    contents[r * col + c] = val;
    return *this;
}

Screen& Screen::set(char val)
{
    contents[cursor] = val;
    return *this;
}

Screen& Screen::move(index r, index c)
{
    cursor = r * col + c;
    return *this;
}

Screen& Screen::display()
{
    do_display();
    cout << "not const" << endl;
    return *this;
}

const Screen& Screen::display() const 
{
    do_display();
    cout << "const" << endl;
    return *this;
}

int main()
{
    Screen s(3, 4);
    s.set(0, 0, 'a');
    s.set(0, 1, 'b').set(0, 2, 'c').display();
    const Screen mys(4, 5);
    mys.display();

    return 0;
}
复制代码

 




本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3454820.html,如需转载请自行联系原作者

相关文章
|
21小时前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
15天前
|
C++ 容器
【编程技巧】 C++11智能指针
C++11引入了智能指针以自动管理内存,防止内存泄漏和悬挂指针: - `shared_ptr`:引用计数,多所有权,适用于多个对象共享资源。 - `unique_ptr`:独占所有权,更轻量级,适用于单一对象所有者。 - `weak_ptr`:弱引用,不增加引用计数,解决`shared_ptr`循环引用问题。 ## shared_ptr - 支持引用计数,所有者共同负责资源释放。 - 创建方式:空指针、new操作、拷贝构造/移动构造,以及自定义删除器。 - 提供`operator*`和`operator-&gt;`,以及`reset`、`swap`等方法。 ## unique_ptr
226 0
|
16天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
17 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
10天前
|
存储 安全 程序员
|
16天前
|
C++
C++指针
C++指针
10 0
|
5天前
|
C++
C++友元函数和友元类的使用
C++中的友元(friend)是一种机制,允许类或函数访问其他类的私有成员,以实现数据共享或特殊功能。友元分为两类:类友元和函数友元。类友元允许一个类访问另一个类的私有数据,而函数友元是非成员函数,可以直接访问类的私有成员。虽然提供了便利,但友元破坏了封装性,应谨慎使用。
38 9
|
18小时前
|
设计模式 安全 编译器
【C++11】特殊类设计
【C++11】特殊类设计
21 10
|
21小时前
|
存储 编译器 C语言
【C++基础 】类和对象(上)
【C++基础 】类和对象(上)
|
8天前
|
编译器 C++
【C++】string类的使用④(字符串操作String operations )
这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以&#39;\0&#39;结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加&#39;\0&#39;。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。