//新建如图文件

//在头文件.h中声明,在.cpp中实现

//main.cpp代码如下

 #define  _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include "test.h"
#include <string.h>
using namespace std; int main()
{
//Student st ;//栈上,这个类的构造函数在类被定义为变量的时候,自动调用
Student *p = new Student("mike",);//在堆上创建实例,不管在堆上,还是在栈里面,只要这个类成了一个对象,构造函数都会自动被调用(带参的函数)。
p->show();
//p->add();//父类中是private
/*strcpy(p->name, "tom");
p->age = 10;*/
//p->set_money(500);
cout << "name = " << p->name << ",age = " << p->age<<endl;
cout << "money = " << p->get_money()<<endl;
delete p;//自动调用析构函数
system("pause");
return ;
}

//person.cpp代码

 #include "person.h"
#include <stdio.h> Person::Person()
{ } void Person::show()
{
printf("show\n");
} void Person::add()
{
printf("add\n");
}

//test.cpp

 #define  _CRT_SECURE_NO_WARNINGS
#include "test.h"
#include <stdio.h>
#include <string.h> void Student::set_money(int n)
{
money = n;
}
int Student::get_money()
{
return money;
} Student::Student(const char *_name, int _age, int _money)
{
strcpy(name, _name);//this
age = _age;
money = _money;
}
Student::Student()
{
memset(name, , sizeof(name));
age = ;
money = ;
printf("hello world!\n");
//classes = new char[100];//在构造函数中分配了100个char。
}
Student::~Student()
{
printf("调用了析构函数。\n");
//delete[]classes;//清理构造函数分配的堆空间内存。
}

//person.h

 #ifndef PERSON_H
#define PERSON_H class Person
{
private:
void add();
public:
Person();
void show();
};
#endif // !PERSON_H

//test.h

 #ifndef TEST_H
#define TEST_H #include "person.h" class Student : public Person
{
public:
char name[];
char *classes;
int age;
private:
int money;
public:
void set_money(int n);
int get_money();
Student(const char *_name, int _age,int money = );//构造函数重载
Student();
~Student();
}; #endif

//运行结果

.h文件和.cpp文件的更多相关文章

  1. vs 2015 项目筛选器没了,.h头文件和.cpp文件混在一起了

    场景: git 拉取 VS 2015 项目,打开之后,.h头文件和.cpp文件混在一起了. 解决方案: 需要XXX..vcxproj.filters 文件.

  2. C语言中头文件和cpp文件解析

    务必提前预读这里的内容:http://www.cnblogs.com/stemon/p/3999844.html 回到cpp文件与头文件各写什么内容的话题上: 理论上来说cpp文件与头文件里的内容,只 ...

  3. Qt中添加静态库.lb,.a和动态库.dll,.so,头文件和.cpp文件

    添加步骤 1.-Qt Creator中,"项目"------"添加库"2.把静态库和动态库文件放到项目文件夹中3.在.pro文件中会添加如下代码: - 添加动态 ...

  4. C中头文件在cpp文件中引用和.h文件引用

    1.编译器会单独编译每个cpp文件.头文件会复制到cpp文件中. 2.有时会遇到这样的一个问题a.cpp要调用b.cpp中的函数,而b.cpp又要调用a.cpp中的函数.这就牵扯到相互调用.这时如果我 ...

  5. C++中template的.h文件和.cpp文件的问题

    在C++中,用到类模板时,如果类似一般的类声明定义一样,把类声明放在.h文件中,而具体的函数定义放在.cpp文件中的话,会发现编译器会报错.如类似下面代码: //test.h文件 #ifndef TE ...

  6. c中头文件在cpp文件里引用和.h文件引用的思考

    我们在编敲代码中头文件是常常使用的. 可是头文件是应该包括在.H文件里还是在.cpp文件里.在这个其中有什么样去差别呢. 假如说我们编写了一个a.cpp  .我们将a.cpp文件的变量和函数申明在a. ...

  7. 头文件与cpp文件为什么要分开写

    最表面的机制是: 头文件是程序的界面(是代码界面),提供给程序员以  类.模版.函数等一系列的声明,让程序员知道应该怎么调用里面的"东西". 从动态链接库的角度看: 头文件提供界面 ...

  8. C++中头文件(.h)和源文件(.cpp)都应该写些什么

    头文件(.h): 写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等,但一般来说不写出具体的实现. 在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下): ...

  9. 在C的头文件中定义的结构体,如何在cpp文件中引用

    解决方案1:在cpp文件中放置.c,且在该文件中引用变量 解决方案2:在一个cpp文件中包含.c,但在另一个cpp文件中使用结构体变量 cpp文件1 cpp文件2 #include "dia ...

随机推荐

  1. PHP and java

    问题补充: 为什么不选用优秀的ASP.NET,京东做的不是很成功嘛?-----------------------------------------------------------------首 ...

  2. 一道考验你设计能力的C++编程题

    http://www.cppblog.com/weiym/archive/2012/06/12/178472.html

  3. python手记(38)

    runfile(r'K:\testpro\testopencv.py', wdir=r'K:\testpro') http://blog.csdn.net/myhaspl myhaspl@qq.com ...

  4. IIS 403.14 - Forbidden错误解决方法

    HTTP 错误 403.14 - ForbiddenWeb 服务器被配置为不列出此目录的内容. 解决方法如下: 打开IIS的”处理程序映射设置“,在右边的操作栏下有 ”添加脚本映射“请求路径:*可执行 ...

  5. 各种计算机语言的经典书籍(C/C++/Java/C#/VC/VB等)

    1.Java Java编程语言(第三版)-Java四大名著--James Gosling(Java之父) Java编程思想(第2版)--Java四大名著--Bruce Eckel Java编程思想(第 ...

  6. HDOJ 1326 Box of Bricks(简单题)

    Problem Description Little Bob likes playing with his box of bricks. He puts the bricks one upon ano ...

  7. 你应该了解的 7个Linux ls 命令技巧

    在前面我们系列报道的两篇文章中,我们已经涵盖了关于‘ls’命令的绝大多数内容.本文时‘ls命令’系列的最后一部分.如果你还没有读过该系列的其它两篇文章,你可以访问下面的链接. 15 个‘ls’命令的面 ...

  8. POI操作Excel2007实例二之“SXSSFWorkbook”处理海量数据

    转自:http://blog.csdn.net/little_stars/article/details/8266262 前文讲述了 POI 读取的基本操作,但后期 经过试验,当写入数据量超过5万条以 ...

  9. memcached学习——常用命令+基于java客户端的3种简单实现(二)

    常用命令: memcached设计的原则就是简单,所以支持的命令也不是特别多~ 1.查看memcached的状态,主要用于分析内存的使用状况.优化内存分配等 stats 查看memcached的运行状 ...

  10. Struts 2零配置

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...