关于C++中this指针-创新互联
【本博客中关于C++和QT,无特别说明开发环境为:Visual studio 2013,QT为5.9.9,特此说明,谨慎参考,希望能帮助到爱好者!】
创新互联专注于企业成都全网营销推广、网站重做改版、连江网站定制设计、自适应品牌网站建设、html5、商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为连江等各大城市提供网站开发制作服务。【提醒:c++中关于.和->区别,都是用于成员选择,基于.表示对象名称选择成员,->表示对象指针选择成员。】
c++变量的作用域:如果函数形参跟类的内部的变量重名,在函数内部,c++会仍然使用函数形参如下例子:
#includeusing namespace std;
class Teacher{
private:
char *tea_name;
int tea_age;
char *tea_address;
public:
void setName(char *tea_name);
void setAge(int tea_age);
Teacher(char *name,int age,char *address);//声明构造函数
void display();//声明普通函数
};
Teacher::Teacher(char *name,int age,char *address){
tea_name=name;
tea_age=age;
tea_address=address;
}
void Teacher::setAge(int tea_age){
tea_age=tea_age;
}
void Teacher::setName(char *tea_name){
tea_name=tea_name;
}
void Teacher::display(){
cout<<"姓名:"<setName("周明");
t->setAge(20);
t->display();
return 0;
}
结果是:
姓名:张三
年龄:34
地址:北京市海淀区
姓名:黄亮
年龄:46
地址:河南省
下面调整后:
#includeusing namespace std;
class Teacher{
private:
char *tea_name;
int tea_age;
char *tea_address;
public:
void setName(char *tea_name);
void setAge(int tea_age);
Teacher(char *name,int age,char *address);//声明构造函数
void display();//声明普通函数
};
Teacher::Teacher(char *name,int age,char *address){
tea_name=name;
tea_age=age;
tea_address=address;
}
void Teacher::setAge(int tea_age){
this->tea_age=tea_age;
}
void Teacher::setName(char *tea_name){
this->tea_name=tea_name;
}
void Teacher::display(){
cout<<"姓名:"<setName("周明");
t->setAge(20);
t->display();
return 0;
}
输出结果正确了!
类的外部定义成员函数时必须同时提供类名和函数名。在类的内部定义的成员函数不需要提供类名,成员函数内部调用类定义的变量和类型,无需提供类名。
1、类作用域中,类的非静态成员函数可以直接访问类的其他任何成员。
2、在类作用域外,只能通过类的对象、指针、引用访问类成员,此时类成员转变成了对象成员。
3、类中成员函数定义的局部变量具有程序块作用域,如果有重名,作用域内层的会遮蔽作用域外层的。
4、想要访问重名的作用域相同的函数或变量,可以使用this指针和二元运算符作用域解析符(::)
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:关于C++中this指针-创新互联
分享URL:http://azwzsj.com/article/cccish.html