游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3377|回复: 10

[C++语法问题][操作符重载]

[复制链接]

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2004-10-31 18:50:00 | 显示全部楼层 |阅读模式
我看到这样的重载
class CVector3
{
private:
float x,y,z;
public:
float& operator[](int col);
const  float& operator[](int col) const;
};
我试了很多次都试不出来什么时候调用 那个带CONST的[],每次都调用第一个[],
我想知道什么时候会调用到第二个CONST的[],大家顺便瞧瞧. [em11]

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-10-31 18:51:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

不知道能看清楚不?[]是左右中括号.

4

主题

38

帖子

46

积分

注册会员

Rank: 2

积分
46
发表于 2004-10-31 19:12:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

用常对象调用

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-10-31 19:23:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

果然,那是不是常对象调用的成员函数都被改了个CONST版本呢?

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-10-31 19:40:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

定义一个常量数组试试

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-10-31 19:51:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

常对象调用常函数

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-10-31 20:01:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

当我把CONST版本注掉后,他就调用普通版本了.
那CONST对象有没有对原函数版本做什么改变呢?

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-10-31 20:08:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

CONST对象要求不能修改其成员 ,  所以只能调用Const版本的函数

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-10-31 20:27:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

但如果我不重载CONST版本的[ ],他也调用 非CONST版本的呀.

22

主题

274

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
 楼主| 发表于 2004-10-31 20:33:00 | 显示全部楼层

Re:[C++语法问题][操作符重载]

我搞错了.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 02:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表