类型问题

adoqq 2004-08-20 08:44:46
已知:
class class1
{
public:
char* s;
//构造析构略
};

然后有
const class1 c1 ;

问题:
c1.s是什么类型?
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
021850524 2004-08-22
  • 打赏
  • 举报
回复
还是一个char *
但是如果把对象定义成const,那是指成员s的值不可写,但是不是说*s不可写.
以下这个例子在vc6下编译链接通过,运行也正确了.
但是在gcc下虽然通过了编译链接,却在运行时报错,没怎么仔细调试,程序可能有错误.

#include <iostream>
#include <string>
using namespace std;
class T
{
public:
T(char *ss = "this is a test.\n")
{
s = ss;
}
char *s;
};

int main()
{
T t1;
cout<<t1.s<<endl;
const T t2("ACMilan");
t2.s[0] = 'a';
t2.s[1] = 'c';
t2.s[2] = 'm';
cout<<t2.s<<endl;
return 0;
}

Squall1009 2004-08-20
  • 打赏
  • 举报
回复
我感觉是const char*,
学习ing,^^
yiana1002 2004-08-20
  • 打赏
  • 举报
回复
把它声明为mutable不就可以改了吗
yiana1002 2004-08-20
  • 打赏
  • 举报
回复
个人认为是const char* const
dhfly 2004-08-20
  • 打赏
  • 举报
回复
当然是char *const啊,只不过由于c1是const不能修改,所以它也不能被修改,但类型还是char *const
jzhonghua 2004-08-20
  • 打赏
  • 举报
回复
我觉得是const char *const

学习ing,呵呵
adoqq 2004-08-20
  • 打赏
  • 举报
回复
就是类定义中s的类型.
char指针.

不是这个意思,我是问c1.s是const char* 还是 char *const
chinaandcomputer 2004-08-20
  • 打赏
  • 举报
回复
同意Squall1009
c1是const对象。
Squall1009 2004-08-20
  • 打赏
  • 举报
回复
就是类定义中s的类型.
char指针.

64,647

社区成员

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

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