Date.h

#ifndef DATE_H
#define DATE_H class Date{
public:
Date(int d=,int m=,int y=);//自定义了构造方法 会覆盖掉默认的无参构造方法
void setDay(int d);
void print();
private:
int d;
int m;
int y; };
#endif

Date.cpp

#include "stdafx.h"
#include <iostream>
#include "Date.h"
using namespace std; Date::Date(int d, int m, int y){
cout<<"construactor me"<<endl;
this->d=d;//和java一样 这里也有this 有两种使用方式
(*this).m=m;
(*this).y=y;
} void Date::setDay(int d){
this->d=d;
} void Date::print(){
cout<<y<<"-"<<m<<"-"<<d<<endl;
}

Test.cpp

#include "stdafx.h"
#include "Date.h" int _tmain(int argc, _TCHAR* argv[])
{
//由于我没有显式的写出一个默认的构造方法
//而且我还自定义了一个自己的构造方法
//那么自己的构造方法会覆盖掉默认的构造方法的 Date d1;//显示constructor me
//虽然这里创建对象的时候没有写参数 但是并不是调用的默认无参构造方法
//因为我为我的构造方法设置了默认值 所以这里可以不给出
d1.print(); Date d2(,,);//调用自己的构造方法
d2.print();//1993-5-5
return ;
}

=========================================

Date.h

#ifndef DATE_H
#define DATE_H class Date{
public:
Date();
Date(int d,int m,int y);//自定义了构造方法 会覆盖掉默认的无参构造方法
void setDay(int d);
void print();
private:
int d;
int m;
int y;
};
#endif

Date.cpp

#include "stdafx.h"
#include <iostream>
#include "Date.h"
using namespace std; Date::Date(){
cout<<"constructor me"<<endl;
this->d=;
this->m=;
this->y=;
} Date::Date(int d, int m, int y){
cout<<"construactor me"<<endl;
this->d=d;//和java一样 这里也有this 有两种使用方式
(*this).m=m;
(*this).y=y;
} void Date::setDay(int d){
this->d=d;
} void Date::print(){
cout<<y<<"-"<<m<<"-"<<d<<endl;
}

Test

#include "stdafx.h"
#include "Date.h" int _tmain(int argc, _TCHAR* argv[])
{
//假如没有自定义自己的构造方法 Date d1就是调用系统默认的无参数构造方法
//再使用了自己的构造方法的情况下 还想调用无参数的构造方法 就只能再写一个无参数的构造方法
//当然了 这两个构造方法都是自己的方法
Date d1;//显示constructor me
d1.print();//0-0-0 Date d2(,,);//调用自己的有参构造方法
d2.print();//1993-5-5
return ;
}

C++ 面向对象学习2 构造方法的更多相关文章

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

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

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

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

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

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

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

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

  5. Java面向对象学习目录

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

  6. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  7. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  8. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

  9. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

随机推荐

  1. elmah - Error Logging Modules and Handlers for ASP.NET - 1 : 初体验

    elmah(英文):https://code.google.com/p/elmah/   写作思路:先看结果,然后再说原理   elmah文章基本内容如下   1.安装 2.基本使用 3.详细配置讲解 ...

  2. MongoDB 启动异常

    今天启动MongoDB遇到异常状况 mongodb warning: 32-bit servers don't have journaling enable 解决方法: 删除数据库目录的.lock文件 ...

  3. JavaScript之向文档中添加元素和内容的方法

    一.非DOM方法添加 1.document.write() <html xmlns="http://www.w3.org/1999/xhtml"> <head&g ...

  4. prime算法求最小生成树(畅通工程再续)

    连着做了四道畅通工程的题,其实都是一个套路,转化为可以求最小生成树的形式求最小生成树即可 这道题需要注意: 1:因为满足路的长度在10到1000之间才能建路,所以不满足条件的路径长度可以初始化为无穷 ...

  5. ROS中编辑文件命令行工具rosed

    rosed是rosbash套件中的一个,它允许我们通过包名直接编辑包中的文件,而不是输入包的全部路径. 用法: rosed [package_name] [filename] 例如: rosed ro ...

  6. Models——英语学习小技巧之四

    Models  are very important, here model means role model, is kind of like a hero. It's  someone that ...

  7. Maven手动创建多模块项目

    Maven手动创建多模块项目 我要创建的项目名称是:unicorn,项目包含两个模块,分别是unicorn-core和unicorn-web.包的路径是com.goldpalm.tour. 项目创建流 ...

  8. Visual Studio 2013使用SASS和Compass--SASS和Compass安装

    你需要安装ruby 你需要安装SASS/Compass 安装sass,在命令行中输入: $ gem install sass 你可能会问gem是什么?gem是ruby的包管理器.包的概念呢,就是一个为 ...

  9. (Problem 39)Integer right triangles

    If p is the perimeter of a right angle triangle with integral length sides, {a,b,c}, there are exact ...

  10. MySQL 设置数据库的隔离级别

    在会话级别设置隔离级别 1.read commited :set session transaction isolation level read committed; 2.repeatable re ...