| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:关于 C++ 中 this 指针的使用~
只看楼主 加入收藏
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
结帖率:90.24%
收藏
已结贴  问题点数:20 回复次数:9 
关于 C++ 中 this 指针的使用~
#include<iostream>
#include<string>
using namespace std;

class student
{
private:
    int num;
    string name;
    float grade;
public:
    student();
    void put(student *this);
};

student::student()
{
num=0;
name="none";
grade=0;
}

void student::put(student *this)
{
cout<<this->num<<endl;
cout<<this->name<<endl;
cout<<this->grade<<endl;
}

void main()
{
student stu;
stu.put(&stu);
}

本想用此程序来验证一下this指针的用法的,却无论如何都无法运行~请问哪儿出了错?
搜索更多相关主题的帖子: private include public 
2014-10-26 16:36
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
收藏
得分:0 
#include<iostream>
using namespace std;

class time
{
private:
int hour;
int minu;
int seco;
public:
void put();
void set();
time(int a,int b,int c);
};
time::time(int a,int b,int c):hour(a),minu(b),seco(c){}

void time::set()
{
cin>>hour>>minu>>seco;
}

void time::put()
{
cout<<hour<<':'<<minu<<':'<<seco<<endl;
}

void main()
{
time t1(17,34,30);
time *const p;
p=&t1;

}
主函数中关于常指针又编译出错~我感觉没错呀~哎·....

既然还有不甘心
就还没到放弃的时候~
2014-10-26 17:53
哆啦安梦
Rank: 2
来 自:哈尔滨理工大学软件
等 级:论坛游民
威 望:1
帖 子:31
专家分:49
注 册:2011-10-21
收藏
得分:4 
this指针是不能显式用作参数的

Press any key to continue_
2014-10-26 22:13
哆啦安梦
Rank: 2
来 自:哈尔滨理工大学软件
等 级:论坛游民
威 望:1
帖 子:31
专家分:49
注 册:2011-10-21
收藏
得分:0 
常量必须进行初始化
time *const p = &t1;

Press any key to continue_
2014-10-26 22:15
哆啦安梦
Rank: 2
来 自:哈尔滨理工大学软件
等 级:论坛游民
威 望:1
帖 子:31
专家分:49
注 册:2011-10-21
收藏
得分:0 
以下是引用哆啦安梦在2014-10-26 22:13:22的发言:

this指针是不能显式用作参数的

把put函数的声明、定义和主函数里的参数全去掉就行了

Press any key to continue_
2014-10-26 22:16
qwe885167759
Rank: 4
等 级:业余侠客
威 望:5
帖 子:148
专家分:259
注 册:2013-3-12
收藏
得分:4 
void put(student *this);你这一句中的 student * this相当于你又重新定义了一个名称为this的指针,(与int * p是一样样的)而不是类的this指针。

我本楚狂人,凤歌笑孔丘
2014-10-27 18:06
沱游星空
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:30
注 册:2014-10-30
收藏
得分:4 
time *const p;这句话顺序有问题!应该是const time *p;然后再初始化
2014-10-30 13:40
zcdjt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:99
专家分:181
注 册:2014-9-9
收藏
得分:4 
同上

今朝醉
2014-10-30 21:52
驽马吐了我
Rank: 2
等 级:论坛游民
威 望:1
帖 子:10
专家分:53
注 册:2014-10-10
收藏
得分:4 
你们学的好难啊!我都看不懂。                                 y




类体外定义,类内加{}
2014-11-02 21:21
peixiao
Rank: 2
等 级:论坛游民
威 望:2
帖 子:17
专家分:25
注 册:2014-11-14
收藏
得分:0 
this 指针是类固有的,无需重新定义;
2014-11-15 12:32
快速回复:关于 C++ 中 this 指针的使用~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029914 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved