24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1337  |  回复: 6

askformore

木虫 (小有名气)

[求助] 程序看不懂,请教C++大神

galaxy.ISRF[0].d2[j].s[k] = 0

上面这个C++语句里,那个点,就是.是什么意思?我知道类的成员是类名.成员名,但是这么多点是什么意思?难道类还可嵌套:类的成员又是类,然后又有成员?

求C++大神指点!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Summer^_^

金虫 (小有名气)

struct结构类
2楼2013-03-30 17:38:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chxy10086

木虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
askformore: 金币+2, 多谢哈! 2013-03-31 17:37:15
应该是多个对象嵌套的成员变量吧。
3楼2013-03-30 17:41:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

鹿小千

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
askformore: 金币+15, ★★★★★最佳答案, 谢谢谢谢! 2013-03-31 17:35:14
C语言的情况下 是一个赋值语句:
结构体内的 数组成员的 数组成员的 数组成员 的赋值  比如如下代码
typedef struct {
    char test_in_in[10];
} s_in_in;
typedef struct {
    char test_in[10];
    s_in_in in_in[10];
} s_in;
typedef struct {
    char test[10];
    s_in in[10];
} s_test;
int main(int argc, char** args) {
    s_test s_instance;
    sinstance.in[1].in_in[1].test_in_in[2]='A';
    return (0);
}
由于C++也支持C的语法 所以上述理解在C++也适用;

其他C++的情况, 由于运算符重载 可变性非常多
galaxy.ISRF[0].d2[j].s[k] = 0
ISRF可以是一个vector或任何重载了[]符号的类
d2[j]  当j是一个数字类型时, d2[j] 与ISRF相同
      当j是一个string时, d2[j]可以是一个map 或与ISRF相同
s[k]应该就是一个数组吧 毕竟=被重载的最多   s[k]甚至可以是任何东西...

顺便说一下 我理解C++的这种语言灵活性使得代码难于阅读 阻碍了程序员的交流 限制了其自身的发展
4楼2013-03-30 23:05:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
askformore: 金币+2, 有帮助, 多谢哈! 2013-03-31 17:35:54
askformore: 金币+1, 有帮助, 谢谢! 2013-03-31 17:36:48
ben_ladeng: 专家考核 2013-03-31 18:05:59
"但是这么多点是什么意思?难道类还可嵌套:类的成员又是类,然后又有成员?"
--------------
你这个理解是正确的.的确可以嵌套,不必非是类,struct这种有成员变量的结构体也可以.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
5楼2013-03-31 00:24:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
6楼2013-03-31 12:44:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guli2013

至尊木虫 (知名作家)

多个对象嵌套的成员变量。
奋斗!
7楼2013-03-31 22:10:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 askformore 的主题更新
信息提示
请填处理意见