C++入门笔记.docx

上传人:b****4 文档编号:27314399 上传时间:2023-06-29 格式:DOCX 页数:15 大小:530.99KB
下载 相关 举报
C++入门笔记.docx_第1页
第1页 / 共15页
C++入门笔记.docx_第2页
第2页 / 共15页
C++入门笔记.docx_第3页
第3页 / 共15页
C++入门笔记.docx_第4页
第4页 / 共15页
C++入门笔记.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++入门笔记.docx

《C++入门笔记.docx》由会员分享,可在线阅读,更多相关《C++入门笔记.docx(15页珍藏版)》请在冰豆网上搜索。

C++入门笔记.docx

C++入门笔记

1,使用VC创建MFCAppWizard应用程序项目注意的问题

要防止在没有安装MicrosoftVisualStudio6.0的计算机中出现缺少MFC42.DLL的错误,可以讲应用程序创建成使用MFC静态库的模式。

单击Project菜单,选择Setting命令,或者使用快捷键ALT+F7,弹出的对话框进行设置属性。

在Microsoftfoundationclasses(MFC)下拉列表中,选择UseMFCinstaticlibrary项目,设置完成后重新编译执行该项目即可。

2,使用AppWizard应用程序向导创建Win32程序

Win32应用程序对初学者来说虽然刚开始有点复杂,但无非就是一下几个部分:

winMain()函数:

负责调用其他应用功能函数。

MyRegisterClass()函数,负责注册窗口各项信息。

InitInstance()函数,负责初始化。

WnProc()函数,负责处理消息循环。

Creatwindow()函数,创建窗口。

3,指针的定义

指针,保存了一个地址。

若是int指针,就保存了一个int整型的地址,你让地址=直接数,编译器能答应吗

#include

usingnamespacestd;

intmain()

{

int*myballs=8;//定义式错误的int*maballs的意思是定义一个整形指针myballs。

不能指向一个直接数。

cout<<*myballs<

cin.get();

return0;

}

解决方法

int*myballs=newint;

*myballs=8;

这样定义了一个int型的指针同时将对应单元的内容赋值为8。

4,结构体

structstudent_info

{

stringstrname;

intchinease;

};

student_info是一个结构体类型,而不是结构变量。

对于结构体赋值可以在初始化的时候进行赋值,也可以通过数组分量进行结构体分量的赋值:

student_infostudent[30];student[0].number=1234;

定义一个结构体要注意以下三个部分:

结构体的关键字:

Strut。

表示定义一个结构体

结构体名称:

student_info就是结构体名称

结构体成员:

包括结构体成员strname成为结构体类型student_info结构成员。

5,函数通过指针来调用数组

两种函数通过指针来调用数组的方法

//intfoun_sum(intany[],intnum)

intfoun_sum(int*any,intnum)

6,函数指针

函数在内存中运行,肯定也像数据对象一样,占用一定的内存空间,既然占用了一定的内存空间,那么他也就有一个内存地址,而指向这个内存地址的就是“函数的指针”。

7,类和构造函数的实现

类定义的关键字是class。

表明声明是一个类的声明。

类名。

Studentclass就是一个类名,这个类名是一个抽象概念,表示一个全体学生组成的学生类,而不是具体的某一个学生。

访问控制关键字。

类定义有三种访问控制关键字:

private,public,protected。

使用private关键字外界不可以直接访问,public可以直接访问。

注意:

类的定义式生成这种对象的前提,考虑类的属性和对外接口是类的重点和难点,基本原则是:

尽量让内部的数据和操作私有化,提供简单易用的接口函数,尽量降低类与类之间的耦合度。

实现类的成员函数:

依次是Human.cppmain.cppHuman.h文件

显然以上这种模块化编程很实用,但是这个程序存在缺陷,因为我们无法对类成员中的变量进行赋值和改变,因此采用类中构造函数,并在对应函数体进行初始化如下图所示:

实现类的成员函数:

依次是Human.cppmain.cppHuman.h文件

使用类的构造函数方法并再函数体内进行初始化对改变类中private类型的成员变量是一个很好的方法,但是这种方法并不是万能的。

假设sex属性定义为常量,即将一个人的性别看成自出生到死亡都是不变的:

Constintsex;//性别是对象生成到销毁都是不变的

如果这样定义,上述所说的两个重载版本的构造函数都不能编译通过,原因在于以下两条语句的操作对于常量来说是不允许的:

sex=Sex;

sex=1;

常量不能作为赋值号的左操作数是基本常识。

C++有一个特殊的类初始化方法:

成员初始化列表法。

改写类的构造函数如下:

//利用构造函数实现对“人”类的成员变量初始化和修改

human_info:

:

human_info(stringname,unsignedintAGE,intSex,unsignedintHeight,unsignedintWeight):

strname(name),age(AGE),sex(Sex),hight(Height),weight(Weight)

{

}//带参数的构造函数的成员初始化列表实现

human_info:

:

human_info():

strname(“Generablepeople”),age(20),sex

(1),hight(176),weight(70)

//不带参数的构造函数成员初始化列表实现。

注意:

变量的初始化和赋值有两种形式:

object=2和object=

(2);在成员初始化列表方法中只能使用object

(2)这一种形式,因此作为常量的sex也可以顺利初始化

析构函数:

~human_info();

析构函数与构造函数相比较,在函数名称前面多了一个~符号,该符号也是析构函数名的一部分。

除了该符号以外,也要和类的名称相同。

由于“人”类中没有对内存做动态内存分配,因此在该类中的析构函数的函数体可以为空或者不定义析构函数。

8,运算符重载函数

格式:

<函数类型><关键字operator><运算符号>(形参类型&形参变量)

{

函数体;

Return;

}

注意:

运算符重载函数的实现在对应的.CPP文件中实现,但是要明白运算符重载函数要在.h文件中要声明。

以下是运算符重载函数的例子:

图片依次是vector.h,vector.cpp,main.cpp文件

第五章

5.1对话框

通过右键属性,可已进行修改按键的名称属性等操作。

为edit控件添加类的成员变量:

首先,右击鼠标“edit”控件,选择“classwizard”选项,再单击的对话框中选择“MemberVariables”选项卡,选中“IDC_EDIT”,然后单击“AddVariables”按钮,单击后会出现单元名称和数据类型。

添加按钮控件消息处理函数:

双击“+,-,*,/”对话框,会弹出一个对话框来设置该控件的纤细处理函数函数名称,可以直接默认。

例程:

voidCDialog1:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData

(1);

m_results=m_data1+m_data2;

UpdateData(0);

}

注意函数:

UpdateData()函数,该函数接受的参数是一个布尔型的变量,接受的参数不同,则对控件和数据交换的作用就不同:

True:

将控件上的数据读取到变量中去。

False:

将变量中的数据写到空间中。

UpdateData()函数是必要的,如果没有,则空间中的数值和变量的数值不能正常的交互。

5.2模式对话框的创建和使用:

1,对话框的添加,在资源视图中右键点击Dialog选择InsertDialog命令。

2,为新建的对话框添加类:

点击主菜单中的insertnewclass,在弹出的对话框中要进行一些列的设置,首先是ClassType:

一般设置为MFCClass。

然后进行类的命名,例如:

Cdialog1,,然后是DialogID选择为IDD_DIALOG1,基类选择是Cdialog。

注意:

对话框和类的关系与对话框里的控件和源程序之间的关系是类似的,对话框要通过ID,然后使用类来绑定这个ID,这样,对话框和类(源程序)就联系在一起了。

3,在主框架菜单中添加触发对话框的菜单项,首先打开Menu文件夹中的IDR_MAINFRAME资源,然后双击菜单列表中的空白处。

弹出的对话框用来设置新建菜单的标题和ID。

4,为新建的菜单添加消息处理函数,右击新添加的菜单,选择classwizard选项,其次在弹出的对话框中选择MessageMaps选择新建对象的ID编号,消息选择COMMAND然后单击AddFunction按钮。

最后添加默认的消息处理函数例如:

OnDlg(),并再XXMainFirm.cpp函数中添加#include<新建类的.h>和响应的消息处理函数,例程代码如下:

#include"Dialog1.h"

voidCMainFrame:

:

OnDlg1()

{

//TODO:

Addyourcommandhandlercodehere

CDialog1dlg;//创建CDialog1类对象dlg

if(!

dlg.DoModal())//调用dlg对象的DoModal()函数创建模式对话框

{

return;

}

}

5.3Windows通用对话框

所谓的Windows通用对话框,就是指Windows提供的一组标准用户界面对话框,而在MFC中也有相应的功能支持对话框的开发。

通用对话框类

用途

CFileDialog

打开或者保存一个文件夹

CCcolorDialog

选择或者创建颜色

CFindReplaceDialog

文字替换对话框

CPageSetupDialog

界面参数对话框

CFontDialog

选择自体对话框

CPrintDialog

设置打印机并打印文档

以CfileDialog为例子;创建MFC应用程序(单文档),然后点击MenuIDR_MAINFRAME,点击编辑添加‘通用对话框-文件’,双击进行命名和命名ID。

最后右击‘通用对话框-文件’点击ClasswizardMessageMaps—>命名IDCOMMANDAddFunction,然后再MainFirm.cpp添加如下代码:

下面以CfileDialog为例子,历程代码如下:

voidCMainFrame:

:

OnWenjianjia()

{

//TODO:

Addyourcommandhandlercodehere

CFileDialogdlgFile(TRUE,"txt","*.txt");

if(dlgFile.DoModal())

{

return;

}

}

CFileDialogdlgFile(TRUE,"txt","*.txt");//CfileDialog类的构造函数接受3个参数,其中第一个参数是选择打开还是保存,TRUE时打开,FALSE是保存

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1