#include "stdafx.h"
#include <iostream> //不要遗漏 否则不能使用cout
using namespace std; class Time{
public :
Time();// 自定义了构造函数 那么必须默认写一个空的构造函数
Time(int h,int m ,int s);
void setTime(int hour,int min,int sec);
void printMilitary();
void printStandard();
private:
int hour;
int min;
int sec;
}; Time::Time(){
} Time::Time(int h, int m, int s){
//hour=h;
//min=m;
//sec=s;
setTime(h,m,s);
} void Time::setTime(int h, int m, int s){//这里的形参不要写为hour 否则函数中无法区别参数和成员变量
hour=h;
min=m;
sec=s;
} void Time::printMilitary(){
//std::cout<<(hour<10?"0":"")<<hour;
//std::cout<<(min<10?"0":"")<<min;
cout<<(hour<?"":"")<<hour<<":";
cout<<(min<?"":"")<<min;
cout<<endl;
} void Time::printStandard(){
//cout<<(hour%12)+" : "<<endl;//写法错误
//cout<<hour%12<<":"<<endl;//ok
cout<<((hour==||hour==)?:hour%)<<":";//三目运算符似乎要求两者类型一致?
//cout<<((hour==0||hour==12)?"12":hour%12)<<":";//总之当其中一个是int 一个是字串就编译失败
cout<<(min<?"":"")<<min;
cout<<endl; } int _tmain(int argc, _TCHAR* argv[])
{
Time t1(,,);
t1.printMilitary();
t1.printStandard();
t1.setTime(,,);
t1.printStandard(); }

C++里面一般不这么做  一般来说 C++将class的定义放在xxx.h文件中  类中函数的实现则放在同名的xxx.cpp中

最后在另一个含有main函数的cpp文件中调用它

Time.h

#ifndef TIME_H
#define TIME_H class Time{
public :
Time();// 自定义了构造函数 那么必须默认写一个空的构造函数
Time(int h,int m ,int s);
void setTime(int hour,int min,int sec);
void printMilitary();
void printStandard();
private:
int hour;
int min;
int sec;
}; #endif

&& #ifndef 后面的TIME_H 这个要和头文件命名一致  不是和类的命名一致  其中将头文件的xx.h中的.改为_

最好都用大写

Time.cpp

#include <iostream> //引用标准库文件
#include "Time.h"
using namespace std;
Time::Time(){
} Time::Time(int h, int m, int s){
setTime(h,m,s);
} void Time::setTime(int h, int m, int s){//这里的形参不要写为hour 否则函数中无法区别参数和成员变量
hour=(h>=&&h<=)?h:;
min=(m>=&&m<=)?m:;
sec=(s>=&&s<=)?s:;
} void Time::printMilitary(){
cout<<(hour<?"":"")<<hour<<":";
cout<<(min<?"":"")<<min;
cout<<endl;
} void Time::printStandard(){
cout<<((hour==||hour==)?:hour%)<<":";//三目运算符似乎要求两者类型一致?
cout<<(min<?"":"")<<min;
cout<<endl;
}

Test.cpp

#include "stdafx.h"
#include <iostream> //不要遗漏 否则不能使用cout
#include "Time.h"
using namespace std; int _tmain(int argc, _TCHAR* argv[])
{
Time t1(,,);
t1.printMilitary();
t1.printStandard();
t1.setTime(,,);
t1.printStandard(); }

C++ 面向对象学习1的更多相关文章

  1. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  2. JavaScript之面向对象学习七(动态原型模式、寄生构造函数模式、稳妥构造函数模式创建自定义类型)

    一.动态原型模式 在面向对象学习六中的随笔中,了解到组合构造函数模式和原型模式创建的自定义类型可能最完善的!但是人无完人,代码亦是如此! 有其他oo语言经验的开发人员在看到独立的构造函数和原型时,很可 ...

  3. Python面向对象学习 1 (什么是面向对象,面向对象的应用场景,待更新)

    程序设计的三种基本结构: 面向对象,面向过程,函数式编程   1,什么是面向对象编程    面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就 ...

  4. Java面向对象学习目录

    Java面向对象学习目录 以下为面向对象学习目录,有待补充的部分,我还会再后续的学习过程中加以补充与修改~ 一.面向对象编程思想 二.Java类及类中成员 属性 方法 构造器 代码块 内部类 面向对象 ...

  5. (转)Python之路,Day6 - 面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...

  6. php面向对象学习

    近期跟着别人开发一套php程序,深感自己面向对象很白痴,于是再次巩固了一下面向对象的学习,自己整理了一下这几天面向对象的东西,给大家分享!! 面向对象的三大特性: 封装 -- 隐藏内部实现,稳定外部接 ...

  7. web进阶之jQuery操作DOM元素&&MySQL记录操作&&PHP面向对象学习笔记

    hi 保持学习数量和质量 1.jQuery操作DOM元素 ----使用attr()方法控制元素的属性 attr()方法的作用是设置或者返回元素的属性,其中attr(属性名)格式是获取元素属性名的值,a ...

  8. 深入js的面向对象学习篇——温故知新(一)

    在学习设计模式前必须要知道和掌握的***. 为类添加新方法: Function.prototype.method = function(name,fn) { this.prototype[name] ...

  9. js面向对象学习

    纯属笔记,加强记忆,不是教程,欢迎纠错,没有逻辑,不太适合学习使用. -------------- 继承多态等太多概念难以理解,还是从实践中慢慢学吧!争取能大致看懂网上的开源的代码. -------- ...

  10. python面向对象学习(二)基本语法

    目录 1. dir内置函数 2. 定义简单的类(只包含方法) 2.1 定义只包含方法的类 2.2 创建对象 2.3 编写第一个面向对象程序 3. 方法中的self参数 3.1 案例改造 -- 给对象添 ...

随机推荐

  1. 全互联结构DVPN综合配置示例

    以下内容摘自正在全面热销的最新网络设备图书“豪华四件套”之一<H3C路由器配置与管理完全手册>(第二版)(其余三本分别是:<Cisco交换机配置与管理完全手册>(第二版).&l ...

  2. Radio Link Failure and Recovery

    四种会发生Radio Link Failure的场景 -  DL Physical Layer Failure (PDCCH BLER > 10%) -  Random Access Probl ...

  3. sqlite学习笔记4:表的创建和删除

    前面做了那么多不就是为了数据弄几张表么.接下来看看怎么新建表. 一 新建表 基本的语法例如以下: CREATE TABLE database_name.table_name( column1 data ...

  4. Node.cloneNode()方法

    概述 返回调用该方法的节点的一个副本. 语法 var dupNode = node.cloneNode(deep);node将要被克隆的节点dupNode克隆生成的副本节点deep 可选是否采用深度克 ...

  5. JavaScript之<noscript>标签简介

    早期浏览器都面临一个特殊的问题,即当浏览器不支持JavaScript时如何让页面平稳的退化.对这个问题的终极方案就是创造一个<noscript>元素,用以在不支持或支持但禁用了JavaSc ...

  6. java分布式服务框架Dubbo的介绍与使用

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  7. 使用MyBatis搭建一个访问mysql数据库的简单示例

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  8. English - 英语学习小笔记

    1.It is...to do sth:做某事是.... 解析:It 是形式主语,后面一半接形容词做表语,to do sth是不定式短语作真正主语. 2.make do和make doing是两种表达 ...

  9. Sql"列转行"三种方法对比

    SQL code------ 合并列值  --***************************************************************************** ...

  10. Exception in MessageQueue callback: handleReceiveCallback

    07-20 14:27:11.477: E/InputEventReceiver(7209): Exception dispatching input event. 07-20 14:27:11.47 ...