| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 415 人关注过本帖
标题:有关this指针的知识,不太明白
收藏  订阅  推荐  打印
lindayanglong
Rank: 2
等级:注册会员
帖子:83
积分:1036
注册:2008-3-9
有关this指针的知识,不太明白

下面是一段有关this指针的程序,我不理解x& X::Set(char *pc)
这样到底是什么意思,为什么要这样 请高手指教


#include<iostream>
#include<string>
using namespace std;
struct x
{
private:
    int len;
    char *ptr;
public:
    int GetLen()
    {
        return len;
    }
    char * Getptr()
    {
        return ptr;
    }
    X& Set(char *);
    X& Cat(char *);
    void print();
};
x& X::Set(char *pc)
{
    len=strlen(pc);
    ptr=new char[len];
    strcpy(ptr,pc);
    return *this;
}

x& X::Cat(char *pc)
{
    len+=strlen(pc);
    strcat(ptr,pc);
    return *this;
}

x& X::copy(X& x)
{
    Set(x.Getptr());
    return *this;
}
2008-8-29 15:32
p1s
Rank: 3Rank: 3
等级:中级会员
威望:5
帖子:330
积分:3528
注册:2005-11-4

x& X::Set(char *pc)
{
    len=strlen(pc);//记录len为字符串pc的长度
    ptr=new char[len];//新辟堆内存空间给ptr
    strcpy(ptr,pc);//将字符串pc的内容复制给ptr
    return *this;//将调用Set成员函数的这个对象作为结果返回
}
2008-8-29 17:30
mcyrdb
Rank: 1
等级:新手上路
帖子:13
积分:244
注册:2007-12-8

x& X::Set(char *pc)
x& 是返回值结构体x的引用
因为声明和定义是分开的 所以有X::(应该是x::吧)
2008-8-29 22:06
scauhj
Rank: 1
等级:新手上路
帖子:10
积分:210
注册:2008-4-15

struct是类的一种,在这个程序当中函数的定义是在类的外面,所以要用::指示类的作用域,x& 是函数返回的类型引用
2008-8-29 23:38
zhuerhua
Rank: 1
等级:新手上路
帖子:7
积分:176
注册:2008-6-29

参考一楼回答.
2008-9-1 11:25
zzt_428
Rank: 2
来自:南京师范大学
等级:注册会员
威望:1
帖子:135
积分:1524
注册:2008-7-6

this 指针指向调用成员函数的对象本身.

帮助别人,提升自己.
2008-9-30 12:01
newyj
Rank: 4
等级:高级会员
威望:2
帖子:504
积分:5868
注册:2008-1-4

这样主要是可以 在调用时 写成一列
举个例子:
set().Cat();
2008-9-30 20:28
共有 414 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.049859 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved