newyj 发表于 2008-4-26 21:54

宁以non-member和non-friend替换member函数有什么好处?

刚看的Effective C++中的一个
说了一大堆也没看懂个意思   说是可以增加封装性 包裹弹性和机能扩充性
能否讲解一下 谢谢了

[[it] 本帖最后由 newyj 于 2008-4-26 21:56 编辑 [/it]]

中学者 发表于 2008-4-26 23:37

LZ是否写反了??应该是member替换non-member和non-friend把

newyj 发表于 2008-4-27 10:17

没有写反啊

中学者 发表于 2008-4-27 11:35

难道non-member和non-friend 函数不存在于全局(除去namespace)?
PS: 条款几??我看下

sunkaidong 发表于 2008-4-27 11:50

没看过..可以说的明白点吗?什么叫non-number?

newyj 发表于 2008-4-27 11:52

第三版 第23条款
是non-member  不是成员函数

[[it] 本帖最后由 newyj 于 2008-4-27 11:54 编辑 [/it]]

中学者 发表于 2008-4-27 11:57

不好意思,我是第二版的,不知道有没有,条款的名称是什么?

newyj 发表于 2008-4-27 12:01

宁以non-member和non-friend替换member函数

中学者 发表于 2008-4-27 12:05

第二版没这个条款~

sunkaidong 发表于 2008-4-27 12:07

不明白,不是友员,不是成员..可以提高封装?对了除去友员除去成员..还有什么?

newyj 发表于 2008-4-27 12:34

还有全局函数

sunkaidong 发表于 2008-4-27 12:38

在类里面封装全局函数?控制权限是什么?我看的是c++primer上面没怎么提这些概念...彻底当成面向对象的语言来看的...

newyj 发表于 2008-4-27 12:42

好象不能在类里面封装全局函数吧
只是说有的时候用全局函数调用public的成员 比 用成员函数好
这就是我不理解的地方

中学者 发表于 2008-4-27 13:34

看多态//

sunkaidong 发表于 2008-4-27 13:38

楼上是说..全局函数用一个父类的引用或指针,然后根据虚函数从构实现动态编联?要是说得是这个要好理解点...

sunkaidong 发表于 2008-4-27 13:45

讨厌概念的东西..最好都是可以有概念然后有例子比较下..要不然光是那些字的意思就够看半天的..呵呵

newyj 发表于 2008-4-27 13:47

回复 15# 的帖子

是啊
能否举的例子啊
没有看懂 你说的 是什么意思

中学者 发表于 2008-4-27 14:14

[code]
#include<iostream>
using namespace std;
class A{
public :
  virtual ~A() =0{
   cout<<"destroy A"<<endl;
  }
  virtual void dump() const =0;
};
class B:public A{
public:
  ~B() {
   cout<<"destroy B"<<endl;
   }
  void dump() const{
  cout<<"B"<<endl;
  }
};
class C:public A{
public :
  ~C() {
  cout<<"destroy C"<<endl;
   }
  void dump() const{
  cout<<"C"<<endl;
  }
};
void Print(const A* pa)
{
  pa->dump();
}
int main(void)
{
   A* pa = new B;
   Print(pa);
   delete pa;
   return;
}
[/code]

sunkaidong 发表于 2008-4-27 14:23

中学,纯虚函数,在基类中一般是不要实现代码的virtual ~A() =0  这里是不是可以不用呢?

[[it] 本帖最后由 sunkaidong 于 2008-4-27 15:02 编辑 [/it]]

中学者 发表于 2008-4-27 14:33

抽象基类多半是接口,纯虚析构可以没实现呢.......[tk05]

页: [1] 2

编程论坛