什么叫静态引用串,什么叫内部指针?

64288 2005-05-14 04:49:55
如题
...全文
239 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
64288 2005-05-18
  • 打赏
  • 举报
回复
int Data::*pmInt = &Data::a;//这句不懂,为什么不直接写int *pmInt=&Data::a,这有区别吗?
这个市类成员指针



用int *pmInt不是更方便吗?他们之间有什么区别
jingyueid 2005-05-17
  • 打赏
  • 举报
回复
const限定类的非静态成员函数,在代码实现中不可以修改类内的成员变量(mutable类型例外)。
c_nestor 2005-05-17
  • 打赏
  • 举报
回复
int Data::*pmInt = &Data::a;//这句不懂,为什么不直接写int *pmInt=&Data::a,这有区别吗?
这个市类成员指针
CPPLOVER_78 2005-05-17
  • 打赏
  • 举报
回复
SORRY 错了,应该是

这是为了保险起见,有这个CONST的话,如果我们的函数有改变类的成员变量的话,编译就通不过.
CPPLOVER_78 2005-05-17
  • 打赏
  • 举报
回复
为什么你们写的函数后面都有个const,这有什么作用

这是为了保险起见,有这个CONST的话,如果我们的函数有改变类的成员函数的话,编译就通不过.
64288 2005-05-17
  • 打赏
  • 举报
回复
class Data {
public:
int a, b, c;
void print() const {
cout << "a = " << a << ", b = " << b
<< ", c = " << c << endl;
}
};

int main() {
Data d, *dp = &d;
int Data::*pmInt = &Data::a;//这句不懂,为什么不直接写int *pmInt=&Data::a,这有区别吗?
dp->*pmInt = 47;
pmInt = &Data::b;
d.*pmInt = 48;
pmInt = &Data::c;
dp->*pmInt = 49;
dp->print();
}
64288 2005-05-17
  • 打赏
  • 举报
回复
为什么你们写的函数后面都有个const,这有什么作用
bypp1314 2005-05-14
  • 打赏
  • 举报
回复
内部指针是指向类内成员变量的指针,Thinking in C++中讲有。
贴段代码

class Data {
public:
int a, b, c;
void print() const {
cout << "a = " << a << ", b = " << b
<< ", c = " << c << endl;
}
};

int main() {
Data d, *dp = &d;
int Data::*pmInt = &Data::a;
dp->*pmInt = 47;
pmInt = &Data::b;
d.*pmInt = 48;
pmInt = &Data::c;
dp->*pmInt = 49;
dp->print();
}
jingyueid 2005-05-14
  • 打赏
  • 举报
回复
创建一个m e s s a g e类,其构造函数带有一个c h a r *型的缺省参数。创建一个私有成员
c h a r *,并假定构造函数可以传递一个静态引用串:简单将指针参数赋给内部指针。创建两个
重载的成员函数p r i n t ( ) ;一个不带参数,而只是显示存储在对象中的消息,另一个带有c h a r *参
数,它将显示该字符串加上对象内部消息。比较这种方法和使用构造函数的方法,看哪种方
法更合理?
----------------------------------------------
这里说的意思是静态引用串,是一个char*指针,例如:
char *p = "abc"

class Message
{
private:
char *data;
public:
Message(char * = "Message");
Print() const;
Print(char *) const;
}

inline Message::Message(char *p)
: data ( p ) //!!!只是指针赋值,而不是来为data申请内存空间来存储字符串的内容
{
}

inline Message::Print()
{
std::cout << data << endl;
}

inline Message::Print(char *p)
{
std::cout << data << p << endl;
}


内部指针是什么?是不是说this指针啊,类的非静态方法中都有一个this指针,这个指针指向当前的对象。
64288 2005-05-14
  • 打赏
  • 举报
回复
inner pointer是什么样的指针呀
XueBoy163 2005-05-14
  • 打赏
  • 举报
回复
静态引用串是不是static string?
什么叫内部指指针是 inner pointer
64288 2005-05-14
  • 打赏
  • 举报
回复
创建一个m e s s a g e类,其构造函数带有一个c h a r *型的缺省参数。创建一个私有成员
c h a r *,并假定构造函数可以传递一个静态引用串:简单将指针参数赋给内部指针。创建两个
重载的成员函数p r i n t ( ) ;一个不带参数,而只是显示存储在对象中的消息,另一个带有c h a r *参
数,它将显示该字符串加上对象内部消息。比较这种方法和使用构造函数的方法,看哪种方
法更合理?
llf_hust 2005-05-14
  • 打赏
  • 举报
回复
贴个代码出来看看呀
ddcooldogs 2005-05-14
  • 打赏
  • 举报
回复
有些翻译的东东不一定很准的,我觉有些只是意会。
jingyueid 2005-05-14
  • 打赏
  • 举报
回复
把上下文贴出来
llf_hust 2005-05-14
  • 打赏
  • 举报
回复
不知道
64288 2005-05-14
  • 打赏
  • 举报
回复
我也不知道英文名,只是中文的think c++中的语汇
zhousqy 2005-05-14
  • 打赏
  • 举报
回复
没听说过,他们的英文各是什么?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧