VC++ 教程

2023-10-30

 :基本概念(对象、面向对象编程2.定义实体后,可以不知道此实体的功能是怎样实现的,也能使用它们.
核心概念:
1.数据封装:将一个数据与这个数据有关的操作集合封装在一起,形成一个能动的实体,称为对象.
2.继承:在面向对象语言中,类功能支持层次机制.除根结点外,每个类都有它的你类或基类.除了叶结点外,每个类都有它的子类或派生类.子类可以继承父类的特性,但可以在父类的基础上派生出新类(新特征).
3.多类性: 就相当于一词多义.其表现形式有:
函数重载:
例如:void f(int,int,char);

void f(char,float);
void f(float,float);
void f(int,float);
这几个函数具有相同的函数名f,但其参数据的不同,确定了其函数功能的不同.
虚函数:在C++中,通过继承,基类及其派生类之间构成一个树型结构,树中的每一个类(基类及派生类)者可以说明一个具有虚特性的函数,称为虚函数.
4.类属:
最重要的形式是:类型参数化,即参数化一个软件分量的能力(参数化模板).即C语言中的形参的概念.
5.CRC设计方法:
即:Class name,对象取名;Responsibilities,责任.每个对象完成设计中的一个小目标,它实现了整个系统状态的某一小部分;Collaborators,合作者.每个对象可能会依赖其他对象来完成其责任.这个对象所依赖的对象集合称为它的合作者.
举一个形象的比喻以上概念:
日常生活中常用的电话,我们可以把它看成一个对象,新的电话总是在旧的电话上增强了许多功能,这可以看成子类继承了你类的一些基本特征;我们用电话不需要知道该电话的结构哐内部元件是如何组成的,那么这就是电话这个对象具有数据封装性.不同的电话其功能不一样,但同一个公司出产的电话具有产品的阶段性,在同一阶段出产的多个品种我们可以把它看成是电话的多类性.


学习C++面临的问题:
1.建立面象对象的思维方式,即考虑学习面向对象的设计方法。
2.用C++语言编程,即使用C++语言的编程方法。
概念:
对象
:
将某一数据和使用该数据的一组基本操作或过程封装在一起,而将些封装体看作一个实体。
其性质:1.将密切关的数据和过程封装起来定义为一个实体.

C++基本语法及结构

一.C++的输入和输出
输入流用">>"表示,输出流用"<<"表示.
例如我们要在屏幕上输出:"你是第几次到三剑侠网站.",则程序语句为:
#include<iostream.h> //包含的标准类头文件
void main() //主程序入口
{ //程序内容
int num=0;
//定义num变量

cin>>num; //用输入流对变量num赋值
cout<<"你是第";//用输出流输出字符串
cout<<num; //输出变量
cout<<
"次到三剑侠网站."; //用输出流输出字符串
} //程序结束


二.注释
注释可以用:"//"和"/*...*/",一般用"//".其例子见上面的注释.

三.new 和 delete
new 及 delete 功能是动态存储分配和释放功能,和C语言中的malloc和free功能相不多.
格式:p=new Type;
delete p;
其中:p是指向该数据类型的指针;type是数据类型名;p保存new分配的内存的首地址.
例如如下例子:
#include <iostream.h>

void main()
{
float *p;
p=new float; //为float动态分配空间
*p=12.55;
cout<<*p;
delete p; //释放float动态分配的空间
}

四.常量描述:const
常量定义形如:const long varname=10;注意:用C的为:#define varname 10
const与指针一起使用的情况:
(1)指针前加const,使指向的对象为常量,而不是指针为常量.
const char *p="dfadsf"
(2)将指针本身,而不是它指向的对象声明为常量,采用运算符*const.
char *const p="adfasd"; //常指针
(3)如果将两上目标都定义为常量,二者都要声明为const.
const char * const p="abcd";

p[3]='a'
p="adfd";

五.内联函数inline

形如:inline void function_name(int a,int b);
功能:编译器在编译时,在调用函数名的地方用函数体替换.这样便于程序维护,加快代码执行.

六.函数原型
形如:int functionname(int a,float b)
它确定了函数返回的类型,并且它能够确定函数使用的参量的类型和个数.

七.函数的缺省参数调用
形如:void function_name(int i=1)
缺省调用的两种形式:
function_name(10);//传递给i变量10;
function_name();//传递给i变量1;

八.引用(给对象取一个别名)
作用:作为参数传递或作为返回类型,也可以独立引用.
例如:
int i;
int &j=i;
int k=9;
j=k;
j是i的地址别名,所以给k=9;实际上是9被赋值给j所联系的存储单元i中,因此i的内容为9.

九.强制类型转换
格式:(类型名)表达式
例如:int i=int(1.3);//则i为整型.

十.枚举名和结构名同是类型名
枚举名和结构名同是类型名,所以不必在枚举名或结构名前冠以enum,struct了.
这与C语言有一定区别.
例如:enum week{monday,thesday,Wednesday,thursday,friday,saturday,sunday};
struct string{
char * str;
int length;
}
实例化后可以说明为:week week1;string str1;

类的概念及结构

一.类的定义:
   请看例子:
   class string                                            //定义类 类名
   {                                                       //类体
     private:                                              //私有成员定义
       int length;
       char * contents;
     public:                                               //公有成员定义
       string();                                           //构造函数
       ~string();                                          //析构函数
       int get_length();                                   //成员函数
       char * get_contents();
       int set_contents(int in_length,char *in_contents);
       int set_contents(char * in_contents):               //set_contents函数重载
     protected:                                            //保护级
   }
  二.定义变量
  string x,*Y
  三.类说明之外定义一个类的成员函数.例如:
   int string::set_contents(int in_lenght,char * in_contents)
    {
     lenght=in_length;
     contents=in_contents;
     return(1);
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VC++ 教程 的相关文章

  • vs2008 MFC 常见错误--新员工常犯的错误!

    1 picture 控件添加成员变量时 出现无效的过程调用或参数 解决办法 找到头文件 对话框数据 enum IDD IDD LDXXXX DIALOG 后面添加下面这行 enum cust enum 2 vc 6 0 升级到vs2005
  • vs 查看 C++ #define 宏定义展开代码

    方法一 define 通常是代码的展开 如果是 复杂 的 define 如何直观的查看展开效果 在 vs 中 选中需要查看的 cpp 文件 右键属性 预处理器 预处理到文件 选择是 确定 右键 cpp 文件 编译 debug 目录中会有一个
  • 程序计算精确圆周率Pai的方法

    一些参考资料 http www guokr com blog 444081 大家都知道 3 1415926 无穷多位 历史上很多人都在计算这个数 一直认为是一个非常复杂的问题 现在有了电脑计算机 这个问题就简单了 最简单高效用Python
  • 函数覆盖与函数隐藏

    derive cpp 定义控制台应用程序的入口点 include stdafx h include
  • C/C++基本数据类型所占字节数

    关于这个基本的问题 很早以前就很清楚了 C标准中并没有具体给出规定那个基本类型应该是多少字节数 而且这个也与机器 OS 编译器有关 比如同样是在32bits的操作系统系 VC 的编译器下int类型为占4个字节 而tuborC下则是2个字节
  • VC++、MFC中最好的开源项目

    介绍一下用VC MFC写的最好的开源项目 Sourceforge net中有许多高质量的VC 开源项目 我列举了一些可以作为VC 程序员的参考 一 优秀的开源项目 7 Zip http sourceforge net projects se
  • 光流法介绍

    光流场法的基本思想 在空间中 运动可以用运动场描述 而在一个图像平面上 物体的运动往往是通过图像序列中不同图像灰度分布的不同体现的 从而 空间中的运动场转移到图像上就表示为光流场 Optical Flow Field 光流场反映了图像上每一
  • C#根据经纬度计算两点距离(单位是千米)

    SQL CREATE function dbo fnGetDistance LatBegin REAL LngBegin REAL LatEnd REAL LngEnd REAL RETURNS FLOAT AS BEGIN DECLARE
  • 关于Directly Mapping Texels to Pixels的例子

    原文 http msdn microsoft com en us library bb219690 28v vs 85 29 aspx 是关于在direct3d9中 对于屏幕空间中 将贴图映射到像素的问题 以下是pixel shader源代
  • VC++ 隐藏控制台程序窗口

    转自 http hi baidu com sicceer blog item d9c35a810d15c4c8bc3e1ec8 html 设置 pragma comment linker subsystem windows entry ma
  • 输出时保留有效数字

    保留3位有效数字 1 C include
  • 游戏开发Unity杂项知识系列:Microsoft Visual C++ 2015 安装失败 0x80070666-已安装这个产品的另一个版本

    参考 https blog csdn net qq 44781435 article details 108629616 总结 系统有了一个更高版本的vc 但是与所需不匹配 必须先卸载高版本的然后再安装目标版本
  • CT2A

    1 CString转为char char szAsciiIP 64 memcpy szAsciiIP CT2A m pEncoder gt m strIP sizeof szAsciiIP 2 详见MSDN http msdn micros
  • #pragma data_seg共享数据使用说明

    用 pragma data seg建立一个新的数据段并定义共享数据 其具体格式为 pragma data seg shareddata HWND sharedwnd NULL 共享数据 pragma data seg 1 pragma da
  • printf标识总结(转)

    printf标识总结 转 Dev C 下基本数据类型学习小结 环境 Dev C 4 9 6 0 gcc mingw32 使用 Wall编译选项 基本类型包括字节型 char 整型 int 和浮点型 float double 定义基本类型变量
  • MFC 当列表控件为Report报表形式时,怎样实现修改表格数据

    声明 本文例子是双击任意位置处的表格数据 实现对当前位置的单元格数据进行修改 1 首先是实现在列表控件中显示表格数据 具体代码这里不描述 显示效果如下图 2 现要实现如声明所说的功能 就是双击某个单元格弹出一个对话框输入新值 再用新值去替换
  • MFC窗口销毁过程

    MFC窗口销毁过程 考虑单窗口情况 假设自己通过new创建了一个窗口对象pWnd 然后pWnd gt Create 则销毁窗口的调用次序 1 手工调用pWnd gt DestroyWindow 2 DestroyWin
  • 如何去掉去掉VC++的安全警告提示

    在用Vc进行进程编写时 你有可能会遇到一大堆的警告 warning C4996 如 warning C4996 This function or variable may be unsafe 原因是VC使用了更加安全的run time li
  • win7安装了vc++6.0打开已保存文件项目就会崩溃

    我用win7安装了vc 6 0的英文完整版 绿色中文版 发现当运行程序时 要打开已保存文件项目就会崩溃 系统对话筐就说 Microsoft R Developer Studio已停止工作 选择调试或者关闭 office 2010 与vc 6
  • Qt数据类型与强制转换(转)

    类型转换 把QString转换为 double类型 方法1 QString str 123 45 double val str toDouble val 123 45 方法2 很适合科学计数法形式转换 bool ok double d d

随机推荐

  • 通配符的匹配很全面, 但无法找到元素 'aop:aspectj-autoproxy' 的声明

    因为项目需要 想使用spring的注解方法的AOP切面编程 在xml配置文件中加入
  • 图片自动填充单元格_教你两个word技巧,快速填充文本,插入表格不变形

    许多人说 Word没有什么用 只是一个打字工具 因此长期以来 Word是最被忽视的办公软件之一 觉得自己没必要学习这个软件 从而放弃了学习 但事实却并非如此 在Word看似 简单 的外表下 隐藏着海量的功能和技巧 但很多人其实只会了Word
  • SJTU括号栈配对(OJ599)

    题目源自SJTU OJ 1599 模拟一个括号栈 其元素是三种括号 给出长为n的操作序列 按序列要求完成以下几种操作 push pop 栈空则忽略此操作 输出栈顶元素 栈空则忽略此操作 询问当前括号是否匹配 栈空则认为匹配 Input Fo
  • python爬虫利器:user agent switcher

    一 推荐理由 方便 相比于在浏览器中右键检查 再将浏览器设置成手机端 如下图 user agent switcher给我们带来更多的是方便 一次设置好 就不怕每次麻烦的右键检查 设置成手机端的重复性操作了 这对于python爬虫算是一个比较
  • Keil uVision5开发环境搭建(MDK 5)

    1 下载并安装 MDK作为STM32常用的IDE 其他还有IAR等等 在学习STM32F103的过程中 我之所以选择MDK 是因为KEIL5可以完美兼容KEIL4 与之前的版本相比 最大的区别在于器件 Software Packs 与编译器
  • VS2017+cmake+DCMTK编译安装

    转载自嗯哇创作https blog csdn net chaoenhu article details 78200274 Visual Studio 2015 cmake编译安装MD版的DCMTK 一 编译环境 本文的编译机器是Window
  • 判断字符串类型以及对比

  • R语言数据处理:tidyr包学习

    文章目录 前言 1 gather 函数 2 spread 函数 3 unite 函数 4 separate 函数 5 缺失值处理 总结 前言 在R语言中 tidyr包的应用 tidyr主要提供了一个类似Excel中数据透视表 pivotta
  • git远程连接全流程

    查看文件状态 git status 把文件提交到暂存区 git add 提交文件 命令形式 git commit m 注释内容 连接到远程仓库 这里的origin是远端名称 一般默认都是origin 后面的地址是仓库路径 git remot
  • office2022最新版本Microsoft 365

    office2022正式版是微软即将发布的全新的office版本 office2022正式版将于 2021 年下半年发布 适用于 Windows 和 macOS 系统 按照惯例 微软每隔三年发布一次新版 Office 所以在2021年下半年
  • KEIL调试正在运行的程序

    问题现象 有时程序跑着跑着就飞了 但此时却没有接仿真器 不能停下来看运行状态 如果重新启动调试 会破坏现场 有没有办法attach到应用程序上调试呢 答案是肯定的 解决措施 在调试选项中 取消以下选择项 Options For Target
  • Oracle练习题(九)

    Oracle练习题 九 1 创建一个存储过程 以员工号为参数 输出该员工的工资 创建存储过程 create or replace procedure print sal n number as val sal emp sal type be
  • “==“和equals的区别是什么

    对于基本类型 比较的是值是否相等 对于引用类型 比较的是地址是否相等 equals 比较的是对象是否相等 不能比较基本类型 因为equals是Object超类中的方法 而Object是所有类的父类 因为 Java 只有值传递 所以 对于 来
  • 把符合要求的数组放到一个新的数组中

    var arra j 0 筛选出大于等于比值 for var i 0 i lt arr length i if arr i gt num arra j arr i 我们经常有这样的需求 我们要筛选出 一个数值最接近数组中的某个数据 并且选择
  • CCF-CSP 新生必读

    CCF软件能力认证 Certified Software Professional CSP CSP认证考什么 怎么考 1 认证概况 认证名称 计算机软件能力考试认证 简称软件能力认证 认证定义 软件能力包括软件的开发 测试 部署和运行维护能
  • 简单的vscode打开多个文件时实现标签栏多行显示

    一 问题描述 vscode在打开文件的时候所有的标签都是在一行 找个东西就很麻烦 设置成多行显示就很方便了 二 设置 打开vscode的设置 搜索wrap tabs 勾选上就可以了
  • hibernate type=MyISAM 报错

    在配置hibernate cfg xml中 如果配置了使用hibernate创建表 则会出现type mylsam错误 主要为引擎错误 错误操作 hibernate cfg xml配置了下面语句后 自动创建表 不建议使用
  • Java读取、写入、处理Excel文件中的数据

    在日常工作中 我们常常会进行文件读写操作 除去我们最常用的纯文本文件读写 更多时候我们需要对Excel中的数据进行读取操作 本文将介绍Excel读写的常用方法 希望对大家学习Java读写Excel会有帮助 在开始进行Java读写Excel前
  • c# 获取快捷方式指向的目标路径

    注意 在使用如下代码之前需进行这些操作 选择 解决方案资源管理 引用 右键 添加引用 COM Windows Script Host Object Model 确定 代码如下 获取快捷方式指向的目标路径 public static read
  • VC++ 教程

    基本概念 对象 面向对象编程2 定义实体后 可以不知道此实体的功能是怎样实现的 也能使用它们 核心概念 1 数据封装 将一个数据与这个数据有关的操作集合封装在一起 形成一个能动的实体 称为对象 2 继承 在面向对象语言中 类功能支持层次机制