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,如需转载请自行联系原作者

相关文章
|
8天前
|
存储 安全 C++
C++中的引用和指针:区别与应用
引用和指针在C++中都有其独特的优势和应用场景。引用更适合简洁、安全的代码,而指针提供了更大的灵活性和动态内存管理的能力。在实际编程中,根据需求选择适当的类型,能够编写出高效、可维护的代码。理解并正确使用这两种类型,是掌握C++编程的关键一步。
17 1
|
1天前
类与对象\this指针
类与对象\this指针
5 0
|
1天前
|
存储 算法 安全
C++一分钟之-数组与指针基础
【6月更文挑战第19天】在C++中,数组和指针是核心概念,数组是连续内存存储相同类型的数据,而指针是存储内存地址的变量。数组名等同于指向其首元素的常量指针。常见问题包括数组越界、尝试改变固定大小数组、不正确的指针算术以及忘记释放动态内存。使用动态分配和智能指针可避免这些问题。示例代码展示了安全访问和管理内存的方法,强调了实践的重要性。
17 3
|
5天前
|
编译器 Linux C++
C++智能指针
**C++智能指针是RAII技术的体现,用于自动管理动态内存,防止内存泄漏。主要有三种类型:已废弃的std::auto_ptr、不可复制的std::unique_ptr和可共享的std::shared_ptr。std::unique_ptr通过禁止拷贝和赋值确保唯一所有权,而std::shared_ptr使用引用计数来协调多个指针对同一资源的共享。在C++17中,std::auto_ptr因设计缺陷被移除。**
|
8天前
|
数据采集 存储 编译器
this指针如何使C++成员指针可调用
本文介绍了C++中的this指针,它是一个隐藏的指针,用于在成员函数中访问对象实例的成员。文章通过代码示例阐述了this指针的工作原理,以及如何使用指向成员变量和成员函数的指针。此外,还提供了一个多线程爬虫示例,展示this指针如何使成员指针在对象实例上调用,同时利用代理IP和多线程提升爬取效率。
this指针如何使C++成员指针可调用
|
13天前
|
存储 编译器 C++
C++中的指针
C++中的指针
9 1
|
1天前
|
C++
C++类和类模板——入门
C++类和类模板——入门
7 1
|
1天前
|
存储 编译器 C++
|
2天前
|
数据安全/隐私保护 C++
C++ 中的类是一种用户定义的数据类型,用于表示具有相似特征和行为的对象的模板。
C++ 中的类是一种用户定义的数据类型,用于表示具有相似特征和行为的对象的模板。
|
2天前
|
C++
C++ 是一种面向对象的编程语言,它支持对象、类、继承、多态等面向对象的特性
C++ 是一种面向对象的编程语言,它支持对象、类、继承、多态等面向对象的特性