由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++子类中调用父类指针的问题
相关主题
能否通过父类指针来复制子类对象?问一个函数指针的问题,c++
子类的assignment operator 怎么访问父类的private member玩了玩emscripten
Question about type conversion (转载)C 语言,初学者,简单问题(2)
问个C#调用unmanaged C++ DLL的问题如何实现将网页内容自动存取?
g++编译了不该过的C++代码difference between: char** p and char*p[] ??
MPI不同进程之间传递指针的一个陷阱C++ pointer problem
请教一个程序调用的内存问题 (转载)A C++ runtime type casting question
请问c++里empty class的问题C++ 科学计算中的常量
相关话题的讨论汇总
话题: foo话题: 改为话题: public话题: 调用话题: class
进入Programming版参与讨论
1 (共1页)
J*****n
发帖数: 4859
1
class A
{
protected:
int foo;
};
class B: public A
{
public:
bool compare(A *p)
{
if foo==p->foo then
return true;
else
return false;
}
};
代码如上,编译说p--〉foo不能被调用。
书上说改为B *p就可以了,另外似乎改为A &p也行。
谁能解释一下其中的机理呢?
谢谢。
z**k
发帖数: 629
2
编译说p--〉foo不能被调用的原因是B类对象的成员函数无法存取A类对象的protected
类成员变量.
书上说改为B *p就可以了, 原因是B类对象的成员函数当然可以存取B类对象的成员变量
,尽管那个成员变量是其继承的(必须是public继承且修饰为public或protected).
另外似乎改为A &p也行, 这个似乎不行,不过没有试过.
最后, 这个 compare函数设计不合理,楼主可以讲讲它的设计用途.
1 (共1页)
进入Programming版参与讨论
相关主题
C++ 科学计算中的常量g++编译了不该过的C++代码
问个C++中重复删除指针的问题MPI不同进程之间传递指针的一个陷阱
问一个关于C++指针的问题请教一个程序调用的内存问题 (转载)
JAVA和C++语言在各个层面上的区别与联系请问c++里empty class的问题
能否通过父类指针来复制子类对象?问一个函数指针的问题,c++
子类的assignment operator 怎么访问父类的private member玩了玩emscripten
Question about type conversion (转载)C 语言,初学者,简单问题(2)
问个C#调用unmanaged C++ DLL的问题如何实现将网页内容自动存取?
相关话题的讨论汇总
话题: foo话题: 改为话题: public话题: 调用话题: class