.h文件和.cpp文件
//新建如图文件

//在头文件.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文件的更多相关文章
- vs 2015 项目筛选器没了,.h头文件和.cpp文件混在一起了
场景: git 拉取 VS 2015 项目,打开之后,.h头文件和.cpp文件混在一起了. 解决方案: 需要XXX..vcxproj.filters 文件.
- C语言中头文件和cpp文件解析
务必提前预读这里的内容:http://www.cnblogs.com/stemon/p/3999844.html 回到cpp文件与头文件各写什么内容的话题上: 理论上来说cpp文件与头文件里的内容,只 ...
- Qt中添加静态库.lb,.a和动态库.dll,.so,头文件和.cpp文件
添加步骤 1.-Qt Creator中,"项目"------"添加库"2.把静态库和动态库文件放到项目文件夹中3.在.pro文件中会添加如下代码: - 添加动态 ...
- C中头文件在cpp文件中引用和.h文件引用
1.编译器会单独编译每个cpp文件.头文件会复制到cpp文件中. 2.有时会遇到这样的一个问题a.cpp要调用b.cpp中的函数,而b.cpp又要调用a.cpp中的函数.这就牵扯到相互调用.这时如果我 ...
- C++中template的.h文件和.cpp文件的问题
在C++中,用到类模板时,如果类似一般的类声明定义一样,把类声明放在.h文件中,而具体的函数定义放在.cpp文件中的话,会发现编译器会报错.如类似下面代码: //test.h文件 #ifndef TE ...
- c中头文件在cpp文件里引用和.h文件引用的思考
我们在编敲代码中头文件是常常使用的. 可是头文件是应该包括在.H文件里还是在.cpp文件里.在这个其中有什么样去差别呢. 假如说我们编写了一个a.cpp .我们将a.cpp文件的变量和函数申明在a. ...
- 头文件与cpp文件为什么要分开写
最表面的机制是: 头文件是程序的界面(是代码界面),提供给程序员以 类.模版.函数等一系列的声明,让程序员知道应该怎么调用里面的"东西". 从动态链接库的角度看: 头文件提供界面 ...
- C++中头文件(.h)和源文件(.cpp)都应该写些什么
头文件(.h): 写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等,但一般来说不写出具体的实现. 在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下): ...
- 在C的头文件中定义的结构体,如何在cpp文件中引用
解决方案1:在cpp文件中放置.c,且在该文件中引用变量 解决方案2:在一个cpp文件中包含.c,但在另一个cpp文件中使用结构体变量 cpp文件1 cpp文件2 #include "dia ...
随机推荐
- 用彩虹表破解MD5、LM Hash等复杂加密密码
http://zhaoxiaobu.blog.51cto.com/878176/461016/
- 磁盘IO单线程顺序写时最快的,如果多线程写,磁盘的磁头要不断重新寻址,所以写入速度反而会慢
(1) 读写最好还是不要多线程,硬盘读写的速度有限,单线程时已经满负荷了,多线程又会增加线程之间的切换,会增加时间. 如果想增加读写速度,应该增加硬盘,做raid (2)首先是硬盘的写入是串行的,CP ...
- 通过并行 提高批量审核PDF性能
上一篇文章提到了 通过 iTextSharp 实现PDF 审核盖章 ,如果当需要一次审核大批量的PDF我们如何来提高程序的性能呢? 下面我们通过并行计算来提升性能. 首先是一个审核PDF的方法 pub ...
- SQL-Employees Earning More Than Their Managers
思路: 今天复习数据库突然想起来leetcode上数据库的题目,就找来做了 (1)给表取别名 格式见code,这在自身连接的时候是很有必要的 (2)自身连接 from语句后面相当于接了“一张表”,如果 ...
- ios 限制输入长度
----------------UITextField限制输入的长度------------ - (BOOL)textField:(UITextField *)textField shouldChan ...
- SYNATXAHIGHLIGHTER IN WLW HAS PROBLEMS
System.Reflection.TargetInvocationException: 调用的目标发生了异常. ---> System.ArgumentException: 字体“Consol ...
- Appium依据xpath获取控件实例随笔
如文章<Appium基于安卓的各种FindElement的控件定位方法实践>所述,Appium拥有众多获取控件的方法.当中一种就是依据控件所在页面的XPATH来定位控件. 本文就是尝试通过 ...
- 关于在xp(sp3 专业版)下安装sql2005开发版图解
今天我在xp上安装sql2005,搞了一上午也没有搞好,最终自己还是搞好,也装了,也卸载了!这里就总结一下,让以后用sql2005的朋友能有个参考!我也是自己在GOOGLE上搜索的! 转自:http: ...
- Ubuntu网络管理
1.重启NetworkManager service network-manager stop rm /var/lib/NetworkManager/NetworkManager.state serv ...
- Java开发者易犯错误Top10
本文总结了Java开发者经常会犯的前十种错误列表. Top1. 数组转换为数组列表 将数组转换为数组列表,开发者经常会这样做: List<String> list = Arrays.asL ...