c++ telescoping constructor is NOT supported until c++11
Telescoping constructor: see Effective Java 2nd Edition Item 2
If you want to use telescoping constructor but your compiler does not support c++11 standards, you can use default parameter instead, see code snippets 'main.cpp', 'Box.h', 'Box.cpp'.
If your compiler supports c++11 standards, the syntax of telescoping is shown in code snippet 'Box2.h' and 'Box2.cpp', and you might need to use '-std=c++11' parameter when you are compiling your source code.
For now, I'd like to use default parameter.
main.cpp
#include "Box.h" int main()
{
Box box;
box.print();
Box box2();
box2.print();
Box box3(, 'A');
box3.print();
Box box4(, 'A', 1.88);
box4.print();
return ;
}
Box.h
#ifndef BOX_H
#define BOX_H class Box
{
public:
Box(const int &_a = , const char &_b = 'M', const double &_c = 0.99);
~Box();
void print(); private:
int a;
char b;
double c;
}; #endif // BOX_H
Box.cpp
#include "Box.h" #include <iostream> using namespace std; Box::Box(const int &_a, const char &_b, const double &_c)
: a(_a), b(_b), c(_c)
{ } Box::~Box()
{ } void Box::print() {
cout << "a = " << a << ",b = " << b << ",c = " << c << endl;
}
Box2.h
#ifndef BOX_H
#define BOX_H class Box
{
public:
Box(const int &_a, const char &_b, const double &_c);
Box(const int &_a, const char &_b);
Box(const int &_a);
Box();
~Box();
void print(); private:
int a;
char b;
double c;
}; #endif // BOX_H
Box2.cpp
#include "Box.h" #include <iostream> using namespace std; Box::Box(const int &_a, const char &_b, const double &_c)
: a(_a), b(_b), c(_c)
{ } Box::Box(const int &_a, const char &_b)
: Box(_a, _b, 0.99)
{ } Box::Box(const int &_a)
: Box(_a, 'M')
{ } Box::Box()
: Box()
{ } Box::~Box()
{ } void Box::print() {
cout << "a = " << a << ",b = " << b << ",c = " << c << endl;
}
c++ telescoping constructor is NOT supported until c++11的更多相关文章
- Effective Java学习笔记
创建和销毁对象 第一条:考虑用静态工厂方法替代构造器 For example: public static Boolean valueOf(boolean b){ return b ? Boolean ...
- Effective Java 学习笔记之创建和销毁对象
一.考虑用静态工厂方法代替构造器 1.此处的静态工厂方法是指返回指为类的对象的静态方法,而不是设计模式中的静态工厂方法. 2.静态工厂方法的优势有: a.使用不同的方法名称可显著地表明两个静态工厂方法 ...
- 《Effective Java》读书笔记
一.引言 1.几条基本规则:(清晰性和简洁性最为重要) 模块的用户永远也不应该被模块的行为所迷惑(那样就不清晰了),模块要尽可能小,但又不能太小 代码应该被重用,而不是被拷贝 模块之间的依赖性应该尽可 ...
- Java高效编程(2) -- Creating and Destroying Objects
Item 1: Consider static factory methods instead of constructors Advantage: One advantage of static f ...
- Effective Java 第三版——2. 当构造方法参数过多时使用builder模式
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- design_patterns_in_typescript 学习
https://github.com/torokmark/design_patterns_in_typescript Creational Singleton [A class of which on ...
- 《Effective Java》读书笔记一(创建与销毁对象)
No1 考虑用静态工厂方法代替构造器 静态工厂方法优势: 它们有名称,阅读性增强,如:BigInteger.probablePrime: 不必每次调用它们的时候都创建一个新对象: 它们可以返回原返回类 ...
- Java - 用builder代替构造器
静态工厂和够构造器有一个共同的局限性:遇到大量的参数时无法很好的扩展. 先说说构造器. 其实field不多时重叠构造器(telescoping constructor)是个不错的方法,易于编写也易于调 ...
- STL vector的构造函数和析构函数(2)
原文来自:点击打开链接 译文: public member function vector的构造器:这里我仅仅翻译C++11的,C++98的就不翻译了. 构造器原型: <vector> s ...
随机推荐
- IDEA ULTIMATE 2019.1 注册码,亲测可用
在 hosts 文件里加入如下的配置: 0.0.0.0 account.jetbrains.com 0.0.0.0 www.jetbrains.com # 2019.1得加这个 注册码: N757JE ...
- Exercise01_03
public class TuAn{ public static void main(String[] args){ System.out.println(" J A V V A" ...
- Delphi 二维码产生和扫描
Zint用于产生二维码. Zxing用读取二维码. VFrames.pas和VSample.pas用于摄像头. 另附带摄像头相关的类库,也可用开源的dspack也可用于摄像头的需求. 以上为开源的信息 ...
- 使用jmatio读写matlab数据文件
/** * Created by hfz on 2016/2/23. */ import com.jmatio.io.*; import com.jmatio.types.MLDouble; impo ...
- Android中选项卡功能的实现
Android中选项卡功能的实现 Android中使用TabHost和TabWidget来实现选项卡功能.TabHost必须是布局的根节点,它包含两个子节点: TabWidget,显示选项卡: Fra ...
- Java 和 数据库两种方式进行加锁
java方式: publicstatic synchronized int generate(StringtableName){ Stringsql = "select value from ...
- php漏洞挖掘与代码审计方法
在甲方公司做代码审计一般还是以白盒为主,漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露等. 1.xss + sql注入 其中占大头的自然是XSS与SQ ...
- 简单工厂模式 SimpleFactory
简单工厂模式 SimpleFactory 1.1什么是简单工厂设计模式 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模 ...
- Druid和Spark对比
Druid和Spark对比 不是Spark专家, 如果描绘有错误, 请通过邮件列表或者其他方式告知我们 Spark实现弹性的分布式数据集概念的计算集群系统, 可以看做商业分析平台. RDDs能复用持久 ...
- 解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 学习了:https://blog.csdn. ...