c++ 虚函数 const等的一些小问题记录
2013-11-14 16:14
295 查看
class Base{
public:
void test(int a);
void test(const int a);//error,不属于重载的范畴,函数名冲突.而且这么定义没意义,本来传值就不会改变原值。
}
class Base{
public:
void test(int &a);
void test(const int &a);//right.属于重载
}
原因很简单。上面的参数是传值,所以肯定不会改变实参的值。传什么都行。
下面传的是引用,是可能改变原值得。所以算重载。
下面同理:
class Base{
public:
void test(int a);
void test(int a) const;//right,同上
};
最后:
class Base{
public:
virtual test(int a);
};
class Child:public Base{
public:
test(int a) const;//屏蔽父类虚函数。一样的道理
}
public:
void test(int a);
void test(const int a);//error,不属于重载的范畴,函数名冲突.而且这么定义没意义,本来传值就不会改变原值。
}
class Base{
public:
void test(int &a);
void test(const int &a);//right.属于重载
}
原因很简单。上面的参数是传值,所以肯定不会改变实参的值。传什么都行。
下面传的是引用,是可能改变原值得。所以算重载。
下面同理:
class Base{
public:
void test(int a);
void test(int a) const;//right,同上
};
最后:
class Base{
public:
virtual test(int a);
};
class Child:public Base{
public:
test(int a) const;//屏蔽父类虚函数。一样的道理
}
相关文章推荐
- C++一些注意点之友元函数、虚函数以及const和volatile对象
- c++关于引用和const的一些问题
- C++一些注意点之友元函数、虚函数以及const和volatile对象
- 记录C/C++中遇到的一些小问题
- 有关C++ POD的一些问题记录
- C++虚函数声明和定义以及g++编译遇到的一些问题
- c++中关于const的一些细节问题
- 关于AudioManager在项目中遇到的一些问题的记录
- C++中的const,static const和static类成员的初始化问题
- Linux 部署 ASP.NET Core 的一些问题记录
- C++中在创建字符串时的一些问题
- Qt 笔记(记录使用Qt中遇到的一些问题)
- 学渣学C++的一些问题及tips
- 解决C++连接MySQL数据库插入和获取记录中文字符乱码问题
- 用dwz时, 由于粗心产生的一些问题(记录方便自己查阅)
- c++中vector向量的一些主要问题
- C++指针作为函数的参数进行传递时需要注意的一些问题
- 既然决定学习python就开始记录一些问题吧
- android集成环信遇到的一些问题记录一下方面以后查阅
- 关于c#调用c++ dll 的一些问题和解决方案