第五十七篇:VS2015建立一个完整的c++工程:头文件.h 源文件.cpp,自动生成类
之前没有用VS或者在vs中一个源程序写到底,没有使用C++编一个工程
打开VS2015 ,新建VS win32工程,前面步骤很简单,不再阐述
下面直接开始:
新建一个VC++ win32的程序,
在源文件加下添加.cpp文件,一般放main函数
#include <iostream>
#include <locale>
#include "human.h"
using namespace std;
int main()
{
Human Tom;
Tom.A(160);
people zhangsan;
zhangsan.B(160);
//cout<<Tom.printf();
}
在头文件中添加.h文件,一般是定义的类
#include "human.h"
class Human
{
public:
void A(int w);
private:
int *i;
};
class people
{
public:
void B(int j);
int num;
private:
int numa;
};
头文件中的.cpp文件放类的构造函数
#include "human.cpp"
#include <iostream>
#include "human.h"
using namespace std;
void Human::A(int w)
{
cout << w << endl;
}
void people::B(int w)
{
w -= 100;
cout << w << endl;
}
然后在源文件下的main函数的要加上类的声明头文件,头文件.cpp也要添加类声明的头文件
i
注意:头文件中定义的类,在与之同名的c文件中要做声明,类的构造函数和析构函数要么显示定义,也要显示的声明,哪怕这些函数里面没有执行的内容,空的也要写出来,否则会编译通不过,要么类的构造函数和析构函数都不写,类默认产生不执行任何程序的构造函数和析构函数
反正一条:对于类里面的析构函数和构造函数只要定义了,必须要声明,函数为空也可以
下面补充一下在VS里面多文件系统(即有多个头文件和cpp文件),使用VS来自动生成类,
1、项目右击->添加->类
输入类名后,h文件和cpp文件自动填充好,而且生成的类的构造函数、析构函数、包含头文件全都有了
如下图:
生成的代码:
h文件
#pragma onceclass Clock
{
public:Clock();~Clock();
};
cpp文件
#include "Clock.h"Clock::Clock()
{
}Clock::~Clock()
{
}
上面都是空的,下面在里面填上我们的函数
2、在类里面放上我们的函数
h文件添加函数后
#pragma once
#include <iostream>
using namespace std;class Clock
{
public:Clock();void SetTime(int NewH, int NewM, int NewS); //三个形参均具有函数原型作用域void ShowTime();~Clock();
private:int Hour, Minute, Second;
};
cpp文件添加函数后
#include "Clock.h"
Clock::Clock()
{Hour = 0;Minute = 0;Second = 0;}
void Clock::SetTime(int NewH, int NewM, int NewS)
{Hour = NewH;Minute = NewM;Second = NewS;
}
void Clock::ShowTime()
{cout << Hour << ":" << Minute << ":" << Second << endl;
}Clock::~Clock()
{
}
3、在main里面添加我们的类包含头文件
#include "Clock.h" //头文件
Clock g_Clock;
int main() //主函数
{cout << "文件作用域的时钟类对象:" << endl;//引用具有文件作用域的对象:g_Clock.ShowTime();g_Clock.SetTime(10, 20, 30);Clock myClock(g_Clock); //声明具有块作用域的对象myClock,并通过默认拷贝构造函数用g_Clock初始化myClockcout << "块作用域的时钟类对象:" << endl;myClock.ShowTime(); //引用具有块作用域的对象return 0;
}
运行结果:
over!!!
第五十七篇:VS2015建立一个完整的c++工程:头文件.h 源文件.cpp,自动生成类相关推荐
- Android Studio SVN配置忽略文件 1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,
Android Studio SVN配置忽略文件 1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,和SVN没有关 ...
- 如何建立一个完整的游戏AI
http://blog.friskit.me/2012/04/how-to-build-a-perfect-game-ai/ 人工智能(Artificial Intelligence)在游戏中使用已经 ...
- nixyx —— 一个小巧的项目工程/编译文件生成器(构建系统?)
恩..nixyx确实算不上是一个构建系统. 所谓构建系统,比如GNU的Autotools,那是一套很完整的构建体系,包括了程序的配置,编译和安装三大部分. 类似的软件还有:google的gyp.腾讯的 ...
- 在rhas3.0上建立一个完整的邮件系统(内含四部分)修正版 V
http://www.chinaunix.net 作者:llzqq发表于:2004-02-28 07:39:56 rhas3.0+qmail+mysql+smtp+vpopmail+igenus+qm ...
- “约见”面试官系列之常见面试题之第五十七篇之强制类型转换(建议收藏)
JS的类型转换,强制转换和隐式转换 JS的类型转换 1.强制转换 通过String(),Number(),Boolean()函数强制转换 var str=123;var str1='123';cons ...
- Selenium基础篇之5-第一个完整的自动化测试脚本
前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习P ...
- 第五十七篇 Django-CRM系统-1登录,注册,修改密码
一.CRM框架简介 二.登录之设计表 在登录之前,我们需要用到django内置的登录验证去做,必须得使用django定义好的表结构或者我们重写表,使用一些我们需要的字段来进行验证.没有重写之前的表为U ...
- header python 环境信息_Python开发必备:如何建立一个完美的项目工程环境
在程序开发时候一套好的开发环境和工具栈,可以帮我们极大的提高开发的效率,避免把大量时间浪费在周边琐事上.本文以Python为例,教大家如何快速打造完美的Python项目开发环境:内容涵盖了模块依赖管理 ...
- 一个完整的Installshield安装程序实例
一个完整的Installshield安装程序实例-艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于 ...
最新文章
- 2022-2028年中国服务机器人行业市场调查研究及前瞻分析报告
- 01矩阵等比放大(Java代码、ACM格式)--2021.9.7百度笔试研发A卷
- Windows XP权限
- 网易邮箱开通imap服务器,网易邮箱率先全面默认开通IMAP服务
- mysql 随机查询数据
- [转] MySQL 查询表数据大小的总结
- matlab神经网络工具箱创建神经网络,matlab神经网络工具箱创建神经网络
- matlab数据处理 书,matlab数据处理记录
- [学习总结] python语言学习总结 (三)
- 高通量数据中批次效应的鉴定和处理(六)- 直接校正表达矩阵
- 多目标跟踪新范式:CenterTrack
- I - Defeat the Enemy UVALive - 7146 二分 + 贪心
- GNS3新手安装教程
- Mac下adb不能重启
- 国内的点对点聊天工具鱼信Fishchat怎么用?
- 爬取中国天气网获取全国城市编码并存入mysql数据库
- 星沙工业机器人_长沙县各种大型企业管道检测:管道排查机器人CCTV检测QV检
- CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思
- android开发界面设计工具,21个免费的UI界面设计工具、资源及网站
- 蒟蒻刷洛谷(11月7日到11月13日)