Bjarne:必须在类声明处赋予数据吗?

ggyy小月

ggyy小月

2016-02-19 19:16

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。
   不必。假如一个接口不需要数据时,无须在作为接口定义的类中赋予数据。代之以在派生类中给出它们。参见“为什么编译要花这么长的时间?”。
  
  有时候,你必须在一个类中赋予数据。考虑一下复数类的情况:
  
  templateclass Scalar class complex {
  public:
   complex() : re(0), im(0) { }
   complex(Scalar r) : re(r), im(0) { }
   complex(Scalar r, Scalar i) : re(r), im(i) { }
   // ...
  
   complex& operator+=(const complex& a)
   { re+=a.re; im+=a.im; return *this; }
   // ...
  private:
   Scalar re, im;
  };
  设计这种类型的目的是将它当做一个内建(built-in)类型一样被使用。在声明处赋值是必须的,以保证如下可能:建立真正的本地对象(genuinely local objects)(比如那些在栈中而不是在堆中分配的对象),或者使某些简单操作被适当地inline化。对于那些支持内建的复合类型的语言来说,要获得它们提供的效率,真正的本地对象和inline化都是必要的。
展开更多 50%)
分享

猜你喜欢

Bjarne:必须在类声明处赋予数据吗?

编程语言 网络编程
Bjarne:必须在类声明处赋予数据吗?

在名字空间中声明类和成员函数

C语言教程 C语言函数
在名字空间中声明类和成员函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Bjarne:为什么一个空类的大小不为0?

编程语言 网络编程
Bjarne:为什么一个空类的大小不为0?

孩子必须在小时候树立哪些正确的价值观

孩子
孩子必须在小时候树立哪些正确的价值观

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用巧妙创意赋予故事感教你如何拍摄主题类作品

摄影 人像摄影 静物摄影
用巧妙创意赋予故事感教你如何拍摄主题类作品

打印店涨价声明走红 声明怎么写

打印机 文件
打印店涨价声明走红 声明怎么写

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Dreamweaver MX 初探 - 第二天(3)

Dreamweaver MX 初探 - 第二天(3)

C++辨析系列谈之四

C++辨析系列谈之四
下拉加载更多内容 ↓