C++入门笔记.doc
文本预览下载声明
1,使用VC创建MFC AppWizard应用程序项目注意的问题
要防止在没有安装Microsoft Visual Studio 6.0 的计算机中出现缺少MFC42.DLL的错误,可以讲应用程序创建成使用MFC 静态库的模式。单击Project菜单,选择Setting命令,或者使用快捷键ALT+F7,弹出的对话框进行设置属性。在Microsoft foundation classes(MFC)下拉列表中,选择Use MFC in static library项目,设置完成后重新编译执行该项目即可。
2,使用AppWizard 应用程序向导创建Win32程序
Win32应用程序对初学者来说虽然刚开始有点复杂,但无非就是一下几个部分:
winMain()函数:负责调用其他应用功能函数。
MyRegisterClass()函数,负责注册窗口各项信息。
InitInstance()函数,负责初始化。
WnProc()函数,负责处理消息循环。
Creatwindow()函数,创建窗口。
3,指针的定义
指针,保存了一个地址。若是int指针,就保存了一个int整型的地址,你让地址=直接数,编译器能答应吗
#include iostreamusing namespace std;int main(){ int *myballs = 8 ;//定义式错误的int *maballs 的意思是定义一个整形指针myballs。不能指向一个直接数。 cout*myballsendl; cin.get(); return 0;}
解决方法
int *myballs = new int;*myballs = 8 ;
这样定义了一个int型的指针同时将对应单元的内容赋值为8。
4,结构体
struct student_info
{
string strname;
int chinease;
};
student_info是一个结构体类型,而不是结构变量。对于结构体赋值可以在初始化的时候进行赋值,也可以通过数组分量进行结构体分量的赋值:student_info student[30]; student[0].number =1234;
定义一个结构体要注意以下三个部分:
结构体的关键字:Strut。表示定义一个结构体
结构体名称:student_info就是结构体名称
结构体成员:包括结构体成员strname成为结构体类型student_info结构成员。
5,函数通过指针来调用数组
两种函数通过指针来调用数组的方法
//int foun_sum(int any[],int num)
int foun_sum(int *any,int num)
6,函数指针
函数在内存中运行,肯定也像数据对象一样,占用一定的内存空间,既然占用了一定的内存空间,那么他也就有一个内存地址,而指向这个内存地址的就是“函数的指针”。
7,类和构造函数的实现
类定义的关键字是class。表明声明是一个类的声明。
类名。Studentclass就是一个类名,这个类名是一个抽象概念,表示一个全体学生组成的学生类,而不是具体的某一个学生。
访问控制关键字。类定义有三种访问控制关键字:private,public,protected。使用private关键字外界不可以直接访问,public可以直接访问。
注意:类的定义式生成这种对象的前提,考虑类的属性和对外接口是类的重点和难点,基本原则是:尽量让内部的数据和操作私有化,提供简单易用的接口函数,尽量降低类与类之间的耦合度。
实现类的成员函数:依次是 Human.cpp main.cpp Human.h文件
显然以上这种模块化编程很实用,但是这个程序存在缺陷,因为我们无法对类成员中的变量进行赋值和改变,因此采用类中构造函数,并在对应函数体进行初始化如下图所示:
实现类的成员函数:依次是 Human.cpp main.cpp Human.h文件
使用类的构造函数方法并再函数体内进行初始化对改变类中private类型的成员变量是一个很好的方法,但是这种方法并不是万能的。假设sex属性定义为常量,即将一个人的性别看成自出生到死亡都是不变的:
Const int sex;//性别是对象生成到销毁都是不变的
如果这样定义,上述所说的两个重载版本的构造函数都不能编译通过,原因在于以下两条语句的操作对于常量来说是不允许的:
sex=Sex;
sex=1;
常量不能作为赋值号的左操作数是基本常识。C++有一个特殊的类初始化方法:成员初始化列表法。改写类的构造函数如下:
//利用构造函数实现对“人”类的成员变量初始化和修改
human_info::human_info(string name ,unsigned int
显示全部