正当的理由
来源:互联网 发布:淘宝店怎样做推广 编辑:程序博客网 时间:2024/05/02 01:06
有一些正当的理由,最终使函数或类。例如,最终最常见的用途是确保一个不可变类保持不变。一个不可变类是专门设计的类的状态不能被创建后,改性。没有最终的标识符,派生类可以使类成为可变的功能。如果基类是最终的,不能将它的子类,这是不可避免的。
然而,一般来说,除非你有很好的理由,最后通常应该避免使用。如果你使用关键字,文件的原因,因为它可能不是很明显的继承你的代码的人。
默认
默认情况下,C++将提供一个默认构造函数,拷贝构造函数,赋值操作符(==操作符)和析构函数。如果你为你的类的所有这些功能替换版本,C++没有提供默认版本。然而,在C + + 11,你现在可以指定您希望编译器提供一个默认的吧。这是通过原型的功能和使用默认的说明符做:
1
2
3
4
5
类Foo
{
foo(x);//自定义构造函数
foo() =默认;/编译器将提供一个默认构造函数和类Foo
};
默认的说明符仅可用于与具有默认功能。
删除
比默认的说明符更有用的是删除说明符,它可以用来禁用功能被定义或叫。一个最好的使用删除说明符使得一类不可复制:
1
2
3
4
5
类Foo
{
Foo& operator=(const Foo&)=删除;/ /禁止使用赋值运算符
Foo(const Foo&)=删除;/ /禁止复制构造
};
删除符也可以用来与特定的参数,确保成员函数不叫。比如说呢。
1
2
3
4
5
类Foo
{
void foo(长);//可以创建foo()用长长的
void foo(长)=删除;/但不能创造它具有更小的东西
};
在上面的例子中,如果你试图调用foo和char,int,或短,长,这些都将被隐式地转换为长,然后将匹配foo(长)。因为foo(长)已被删除,编译器将误差。
如果你想让你的类只能被称为特定的数据类型,您可以关闭的隐式转换完全采用模板函数匹配,没有明确定义的一切:
- 正当的理由
- 学C#不学Java的最正当理由
- 学C#不学Java的最正当理由
- 学C#不学Java的最正当理由 "搞笑"
- 学C#不学Java的最正当理由
- 胡言大学毕业论文需要抄袭的正当理由
- 灰色产业链带来的合法正当的行业收入
- 正当我问谁来救中国足球的时候,上帝一溜烟跑了
- 哥特式的美 “欧依娅9元韩服”元素正当红
- 搜索引擎优化能以很正当的形式停止
- 【笑话】聊天的理由
- 分手的理由
- 错误的结婚理由
- 逃课的理由
- 快乐的理由
- 没有放弃的理由
- 逃课的理由
- 爱一个人的理由
- 链表两节点互换的指针问题
- Android开发之WebService介绍
- 网页游戏服务器租用
- struts2拦截器与过滤器
- Firefox OS手机应用开发(一):为什么要学习Firefox OS?
- 正当的理由
- WebWork-Action(动作)——用户注册实例
- 进程调用fork与文件描述符的共享(fork,dump)
- 桌面应用C#框架
- 在xcode5中修改整个项目名
- nginx rewrite规则和参考
- 工程类跟一个框架冲突,记得加前缀
- SOAP技术5
- 理解.net中的事件机制