C++?е????????????????????
???????????? ???????[ 2012/10/17 10:16:06 ] ????????
????2.2 ???麯??
??????????????????????????麯????
class A
{
public:
virtual void foo()=0; // =0???????麯??????麯??
};
????????????????????????麯????????????????????????????????????????麯???????淶?????????????????????ν??“???”????????????????????????????????????
????2.3 ??????????
?????????????????????????????????????磺
class A
{
public:
virtual ~A()=0; // ????????????
};
???????????????????????????????????????????????????????????????????
class A
{
public:
A() { ptra_ = new char[10];}
~A() { delete[] ptra_;} // ????????????
private:
char * ptra_;
};
class B: public A
{
public:
B() { ptrb_ = new char[20];}
~B() { delete[] ptrb_;}
private:
char * ptrb_;
};
void foo()
{
A * a = new B;
delete a;
}
??????????????У???????????????????????????У??????delete a?????????????A::~A()???????????B???????????????б????????????е?????£?
?????????????A::~A()???virtual????????B::~B()???delete a???????????????????????????????????virtual???
?????????????????????????????????????????????????????????????????????????????????????????к???????????????黯????????????????????????????????
????2.4 ?鹹????
????????????????????
????3???麯????ü???
????3.1 private???麯??
??????????????????
class A
{
public:
void foo() { bar();}
private:
virtual void bar() { ...}
};
class B: public A
{
private:
virtual void bar() { ...}
};
??????????????У????bar()??A??????private??????????????????????????У????????????public????protected???麯??????????????Ч?????????????????private???????A::foo()???????B::bar()??????????????B::bar()??A::bar()??override??????????????
????????д???????????A????B?????override???bar()????????????????????????????????????????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11