1. #include "stdafx.h"
  2. #include <iostream> //不要遗漏 否则不能使用cout
  3. using namespace std;
  4.  
  5. class Time{
  6. public :
  7. Time();// 自定义了构造函数 那么必须默认写一个空的构造函数
  8. Time(int h,int m ,int s);
  9. void setTime(int hour,int min,int sec);
  10. void printMilitary();
  11. void printStandard();
  12. private:
  13. int hour;
  14. int min;
  15. int sec;
  16. };
  17.  
  18. Time::Time(){
  19. }
  20.  
  21. Time::Time(int h, int m, int s){
  22. //hour=h;
  23. //min=m;
  24. //sec=s;
  25. setTime(h,m,s);
  26. }
  27.  
  28. void Time::setTime(int h, int m, int s){//这里的形参不要写为hour 否则函数中无法区别参数和成员变量
  29. hour=h;
  30. min=m;
  31. sec=s;
  32. }
  33.  
  34. void Time::printMilitary(){
  35. //std::cout<<(hour<10?"0":"")<<hour;
  36. //std::cout<<(min<10?"0":"")<<min;
  37. cout<<(hour<?"":"")<<hour<<":";
  38. cout<<(min<?"":"")<<min;
  39. cout<<endl;
  40. }
  41.  
  42. void Time::printStandard(){
  43. //cout<<(hour%12)+" : "<<endl;//写法错误
  44. //cout<<hour%12<<":"<<endl;//ok
  45. cout<<((hour==||hour==)?:hour%)<<":";//三目运算符似乎要求两者类型一致?
  46. //cout<<((hour==0||hour==12)?"12":hour%12)<<":";//总之当其中一个是int 一个是字串就编译失败
  47. cout<<(min<?"":"")<<min;
  48. cout<<endl;
  49.  
  50. }
  51.  
  52. int _tmain(int argc, _TCHAR* argv[])
  53. {
  54. Time t1(,,);
  55. t1.printMilitary();
  56. t1.printStandard();
  57. t1.setTime(,,);
  58. t1.printStandard();
  59.  
  60. }

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

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

Time.h

  1. #ifndef TIME_H
  2. #define TIME_H
  3.  
  4. class Time{
  5. public :
  6. Time();// 自定义了构造函数 那么必须默认写一个空的构造函数
  7. Time(int h,int m ,int s);
  8. void setTime(int hour,int min,int sec);
  9. void printMilitary();
  10. void printStandard();
  11. private:
  12. int hour;
  13. int min;
  14. int sec;
  15. };
  16.  
  17. #endif

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

最好都用大写

Time.cpp

  1. #include <iostream> //引用标准库文件
  2. #include "Time.h"
  3. using namespace std;
  4. Time::Time(){
  5. }
  6.  
  7. Time::Time(int h, int m, int s){
  8. setTime(h,m,s);
  9. }
  10.  
  11. void Time::setTime(int h, int m, int s){//这里的形参不要写为hour 否则函数中无法区别参数和成员变量
  12. hour=(h>=&&h<=)?h:;
  13. min=(m>=&&m<=)?m:;
  14. sec=(s>=&&s<=)?s:;
  15. }
  16.  
  17. void Time::printMilitary(){
  18. cout<<(hour<?"":"")<<hour<<":";
  19. cout<<(min<?"":"")<<min;
  20. cout<<endl;
  21. }
  22.  
  23. void Time::printStandard(){
  24. cout<<((hour==||hour==)?:hour%)<<":";//三目运算符似乎要求两者类型一致?
  25. cout<<(min<?"":"")<<min;
  26. cout<<endl;
  27. }

Test.cpp

  1. #include "stdafx.h"
  2. #include <iostream> //不要遗漏 否则不能使用cout
  3. #include "Time.h"
  4. using namespace std;
  5.  
  6. int _tmain(int argc, _TCHAR* argv[])
  7. {
  8. Time t1(,,);
  9. t1.printMilitary();
  10. t1.printStandard();
  11. t1.setTime(,,);
  12. t1.printStandard();
  13.  
  14. }

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. SqlServer数据类型、C#SqlDbType对应关系及转换

    { { } } { SqlDbType dbType = SqlDbType.Variant; { dbType = SqlDbType.Int; dbType = SqlDbType.VarChar ...

  2. Oracle查询表结构的常用语句

    1. 查询表结构基本信息 select * from user_tables t,user_tab_comments c where c.table_name = t.table_name and t ...

  3. ROS的文件系统

    这篇博客介绍一下ROS的文件系统的基本概念,用户可以直接在官方网站:http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem去查看官方手册. ...

  4. Log4net 自定义字段到数据库(二)

    这种方法比第一种方法麻烦些 Log4Net.config <?xml version="1.0" encoding="utf-8" ?> <c ...

  5. C# 中使用Newtonsoft.Json 处理JSON数据 绝对能用

    当你搜到这篇文章是幸运的,因为之前我遇到这个问题 主要是 Newtonsoft.Json 版本不一 且网上各种文章 都是复制的 并不说明版本的问题 这里我就不说什么版本的问题了,总之必须使用我这个DL ...

  6. codeforces 630P. Area of a Star

    题目链接 圆上n个点等距离分布, 求构成的星星的面积. 我们可以求三角形OAB的面积, ∠CAE = 1/2 ∠ COE = PI/n, 那么∠CAO = PI/2n, ∠AOB非常好求, 就是PI/ ...

  7. test md

    [TOC] Glossary SUT SYSTEM UNDER TEST CUT CLASS UNDER TEST MUT METHOD UNDER TEST Tests without Use of ...

  8. Linux 组与用户

    组: 添加: groupadd groupName -g groupID  --> groupadd dba -g 502 删除: groupdel  groupName             ...

  9. 转:CI伪静态化

    去掉php框架CI默认url中的index.php 2010-03-17 17:33:07|  分类: php框架ci |字号 订阅   CI默认的rewrite url中是类似这样的,例如你的CI根 ...

  10. Qt窗口屏幕居中显示(有专门的QDesktopWidget,先计算后显示)

    窗口的屏幕居中显示问题,在各开发工具中原理相同,首先使用特定的方法得到显示屏幕的宽度和高度,再根据窗口本身的宽度和高度计算出窗口的左上角坐标位置. Qt中可以采用两种方法达到窗口的屏幕居中显示: 方法 ...