Re: [cpp] 问一个关于拷贝构造函数的问题
huangyi
huangyi12 at gmail.com
Thu Mar 16 20:48:41 CST 2006
Test::Test(const Test& t): m_pc(t.m_pc)
{
}
楼主想说的是 t.m_pc 而不是前面那个m_pc 啊
t可不是自家人啊 这个也可以访问么?
On 3/16/06, Oscar.Ken <oscar.ken at gmail.com> wrote:
>
> 顺便出个小题目,下面代码中哪几行不能通过编译?(仅供娱乐)
> class Base
> {
> protected:
>
> int _iProtected;
>
> private:
>
> int _iPrivate;
>
> public:
>
> void FooBase()
> {
> _iPrivate = 0;
> }
> };
>
>
> //--------------------------------------------------------------------------------------
>
> class ProtectedB : protected Base
> {
> public:
>
> void Foo()
> {
> _iPrivate = 0;
> _iProtected = 0;
> }
> };
>
>
> //--------------------------------------------------------------------------------------
>
> class PrivateB : private Base
> {
> public:
>
> void Foo()
> {
> _iPrivate = 0;
> _iProtected = 0;
> }
> };
>
>
> //--------------------------------------------------------------------------------------
>
> int main(int argc, char* argv[])
> {
> PrivateB privateB;
> privateB.Foo();
>
> ProtectedB protectedB;
> protectedB.Foo();
>
> privateB.FooBase();
> protectedB.FooBase();
>
> return 0;
> }
>
>
> 在06-3-16,Oscar. Ken <oscar.ken at gmail.com> 写道:
>
> > 自家人不识自家人,合理吗?
> >
> > 在06-3-16,Fei Xu <flyingxu at gmail.com> 写道:
> > >
> > > 也许可以这样理解
> > > protected, private都是对于class,而不是object
> > >
> > > On 3/16/06, Qiao Jie < analystqiao at hotmail.com> wrote:
> > > > 这个是对标准的误解。
> > > > Test类的成员函数当然具有对Test类成员的完全访问权限,这个跟类型相关,而跟你是
> > > > 用指针访问还是引用访问是用this指针还是其他名字的指针没有任何关系。你在Test函
> > > > 数里用m_pc的时候,其实是隐含使用了this->m_pc。
> > > >
> > > >
> > > > >From: Xiao Guo Li <lxgbrian at yahoo.com.cn>
> > > > >Reply-To: C++ Discuss Group < cpp at codingnow.com>
> > > > >To: C++ Discuss Group < cpp at codingnow.com>
> > > > >Subject: [cpp] 问一个关于拷贝构造函数的问题
> > > > >Date: Thu, 16 Mar 2006 16:36:29 +0800 (CST)
> > > > >
> > > > >大家看看,下面的代码有什么问题没有,
> > > > >class Test{
> > > > >public:
> > > > > Test();
> > > > > Test(const Test& t);
> > > > >private:
> > > > > char * m_pc;
> > > > >};
> > > > >
> > > > >Test::Test(const Test& t): m_pc(t.m_pc)
> > > > >{
> > > > >}
> > > > >
> > > > >...
> > > > >问题是,这样写没有问题,但按照理解,
> > > > >m_pc是类Test的私有变量,t.m_pc这种写法是不允许的。
> > > > >
> > > > >哪位DX给解释一下?
> > > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Cpp mailing list
> > > > Cpp at codingnow.com
> > > > http://codingnow.com/mailman/listinfo/cpp
> > > >
> > >
> > >
> > > --
> > > Fei Xu
> > > Shanghai, China
> > >
> > > _______________________________________________
> > > Cpp mailing list
> > > Cpp at codingnow.com
> > > http://codingnow.com/mailman/listinfo/cpp
> > >
> >
> >
>
> _______________________________________________
> Cpp mailing list
> Cpp at codingnow.com
> http://codingnow.com/mailman/listinfo/cpp
>
>
--
http://codeplayer.blogbus.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codingnow.com/pipermail/cpp/attachments/20060316/15925828/attachment.html
More information about the Cpp
mailing list