鱼C论坛

 找回密码
 立即注册
查看: 1956|回复: 0

[技术交流] C++(13th):this

[复制链接]
发表于 2021-2-10 23:02:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
this指针

在对象里,无时无刻都存在一个this指针(不管你有没有声明),它的作用在于,当类里的函数传入参数的名称与类里的属性名称相等时,可以用this来区别;
class Computer
{
public:
        int num;
        std::string color;
        char size;
        
        void print_num( int num );

};

void Computer::print_num( int num )
{
        num = num;
}
在函数print_num()里,闯入了一个参数num,这个num与类里的属性num名字相同,但却是两个不同的变量,这样函数里的num = num就意义不明,但我们可以使用this来区别它们可以使用this指针来区别,我们可以把num = num改成
this->num = num;
this->num指的就是类里的属性,后面的就是传入的参数;
注意:使用this指针的基本原则是:如果代码不存在二义性隐患,就不必使用this指针。
继承

在C++里,当我们想让一些类拥有另一些类的方法与属性的时候,我们可以使用继承的方法
#include <iostream>
#include<string>

class Computer
{
public:
        int num;
        std::string color;
        char size;
        
        void print_num( int i );

};

class Ipad: public Computer
{
public:
        void carry();
};

void Computer::print_num( int i)
{
        std::cout << i << std::endl;
}

void Ipad::carry()
{
        std::cout << "我能够携带" << std::endl; 
}


int main()
{
        Ipad myipad;
        myipad.print_num( 5 );
        myipad.carry();
        
        return 0;
 } 
5
我能够携带
我们想让Ipad继承Computer的属性与方法,在声明Ipad时可以使用class Ipad: public Computer,创建myipad后可以使用print_num方法;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 15:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表