1.时钟类的完整程序

#include<iostream>
using namespace std;
class Clock{
public :
void setTime(int newH=,int newM=,int newS=);//设置函数的默认值,注意!在此处声明时设定后外部实现时就不用设置了
void showTime();
private:
int hour,minute,second;
}; //时钟类的具体实现
void Clock::setTime(int newH,int newM,int newS)
{
hour=newH;
minute=newM;
second=newS;
} void Clock::showTime()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
} //主函数
int main()
{
Clock myClock;//定义对象
cout<<"First time set and output:"<<endl;
myClock.setTime();//设置时间为默认时间
myClock.showTime();
cout<<"Second time set and output:"<<endl;
myClock.setTime(,,);
myClock.showTime(); return ;
}

2.真是……本来想给clock类加上构造函数和复制构造函数还有析构函数,结果,在构造函数这块出了问题,call of overloaded Clock is ambigious,说是Clock这个函数有二义性,导致无法重载

下面看代码:

#include<iostream>
using namespace std;
class Clock{
public :
void setTime(int newH=,int newM=,int newS=);//设置函数的默认值,注意!在此处声明时设定后外部实现时就不用设置了
void showTime();
Clock(int newH=,int newM=,int newS=);//含参构造函数
Clock(); //无参构造函数
Clock(Clock& clockCopy);//复制构造函数
~Clock(){}//内置的析构函数
private:
int hour,minute,second;
}; //时钟类的具体实现
Clock::Clock(int newH,int newM,int newS)
{
hour=newH;
minute=newM;
second=newS;
} Clock::Clock()
{
hour=;
minute=;
second=;
} Clock::Clock(Clock& clockCopy)//复制构造函数是把传过来的对象的属性赋值给当前对象
{
hour=clockCopy.hour;
minute=clockCopy.minute;
second=clockCopy.second;
}
void Clock::setTime(int newH,int newM,int newS)
{
hour=newH;
minute=newM;
second=newS;
} void Clock::showTime()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
} //主函数
int main()
{ Clock myClock;//定义对象
cout<<"First time set and output:"<<endl;
myClock.setTime();//设置时间为默认时间
myClock.showTime();
cout<<"Second time set and output:"<<endl;
myClock.setTime(,,);
myClock.showTime(); return ;
}

主要是这块:

当我把含参构造函数的参数都设置上默认值的时候,系统就会允许在调用这个函数时可以不加参数,这就跟无参构造函数冲突了

想要避免这种情况的话,可以把默认值含参构造函数的默认值去掉,改成Clock(int newH,int newM,int newS); 的形式

如果就是非得想给它设一个默认值且不想跟无参构造函数冲突的话,我个人给你出个法子,你可以加一个没用的变量,当然,你要保证这个没用的变量不会跟其他单参数构造哈三年冲突;Clock(int nouse,int newH=0,int newM=0,int newS=0);//虽然传进去一个变量,但是你函数实现时不用它就行了;    当然这只是针对某些情况下这样去做,一般没必要,值不当

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

Part-Three 类与对象的更多相关文章

  1. Java编程里的类和对象

    像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...

  2. Python - 类与对象的方法

    类与对象的方法

  3. C++基础知识(5)---类和对象

    终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好.类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重 ...

  4. 简述JavaScript对象、数组对象与类数组对象

    问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...

  5. 前端学PHP之面向对象系列第一篇——类和对象

    × 目录 [1]类 [2]成员属性[3]成员方法[4]对象[5]成员访问[6]this 前面的话 面向对象程序设计(OOP)是一种计算机编程架构.计算机程序由单个能够起到子程序作用的单元或对象组成,为 ...

  6. Objective-C Runtime 运行时之一:类与对象

    Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...

  7. [Java入门笔记] 面向对象编程基础(一):类和对象

    什么是面向对象编程? 我们先来看看几个概念: 面向过程程序设计 面向过程,是根据事情发展的步骤,按进行的顺序过程划分,面向过程其实是最为实际的一种思考方式,可以说面向过程是一种基础的方法,它考虑的是实 ...

  8. 解析Java类和对象的初始化过程

    类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...

  9. 02OC的类和对象

    这章重点介绍OC的类以及对象,由于C语言是面向过程语言,而OC只是对于C语言多了一些面向对象的特性,所以OC相对于其他面向对象语言,例如C#.Java等没有那么多的语法特性,所以差别还是比较大的. 一 ...

  10. swift基础:第六部分:类与对象

    http://reactnative.cn/docs/0.24/getting-started.html#content(react Native 开发文档) 互联网这个时代,你松懈一天,就会有很多很 ...

随机推荐

  1. MT【267】第一次很重要

    \begin{equation*}\textbf{已知}x_1,x_2<\pi,x_{n+1}=x_n+\left\{ \begin{aligned} sin x_n &,x_n> ...

  2. 使用nmon监控Linxu服务器性能

    nmon是IBM开发的Linux软件工具.能够监控多项Linux服务,最常见的如:CPU使用率.内存使用率.硬盘读写.网卡流量等. 并能设置参数,将记录的数据保存到文件,利用Excel做统计分析. 安 ...

  3. css颜色表示法

    css颜色值主要有三种表示方法: 1.颜色名表示,比如:red 红色,gold 金色 2.rgb表示,比如:rgb(255,0,0)表示红色 3.16进制数值表示,比如:#ff0000 表示红色,这种 ...

  4. Codeforces 1079D Barcelonian Distance(计算几何)

    题目链接:Barcelonian Distance 题意:给定方格坐标,方格坐标上有两个点A,B和一条直线.规定:直线上沿直线走,否则沿方格走.求A到B的最短距离. 题解:通过直线到达的:A.B两点都 ...

  5. 老铁,告别postman,用pycharm来调接口,顺便把接口脚本也写了

    最近,一位同事在用postman调涉及到依赖的接口的时候 postman设置了环境变量,但是老是获取不到依赖接口返回的值,至于的啥原因呢,@#¥%……&*()! 其实,用pycharm一样可以 ...

  6. cf366C Dima and Salad (dp)

    是一个01分数规划的形式,只不过已经帮你二分好了. 把b乘过去,再减回来,找和等于0的a的最大值就行了 #include<bits/stdc++.h> #define pa pair< ...

  7. 天梯赛 L2-001 紧急救援

    L2-001 紧急救援 (25 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道 ...

  8. ubuntu 百度云

    下载链接:https://pan.baidu.com/s/1HBu5T3PZ8JsS93PgOKnUYw提取密码:6J1A 在终端中输入命令: sudo dpkg -i bcloud_3..1_all ...

  9. 全面理解虚拟DOM(1)

    最近一两年前端最火的技术莫过于 reactjs,angularJS,vuejs,即便你没用过也可能听过,像ReactJS由业界顶尖的互联网公司facebook提出,其本身有很多先进的设计思路,比如页面 ...

  10. bzoj3238 差异

    题目链接 思路 观察题目中的式子,可以发现前两项是定值.所以只需要求出最后一项就行了. 然后题目就转化为了求字符串中所有后缀的\(lcp\)长度之和. 可以想到用后缀数组.在后缀数组上两个后缀的\(l ...