12 2019 档案
摘要:服务端 其代码如下 #include <stdio.h> #include<stdlib.h> #include<sys/socket.h> #include<unistd.h> #define SERV_PORT 9898 #define SERV_IP "127.0.0.1" #include<
阅读全文
摘要:通过CWinApp和CFrameWnd框架窗口通过消息映射画图,写字仍略显麻烦,因此好心的微软向我们提供了“文档“ ”视图”体系 先前在窗口(CFrameWnd)里“画”的控件现在画在视图里(CView) 上机环境:win7下的vs2010 可能遭遇的问题 运行程序时提示:LINK fatal er
阅读全文
摘要:anotherapp.h #include<afxwin.h> class myapp:public CWinApp { virtual BOOL InitInstance(); }; class mywnd:public CFrameWnd { public: mywnd(); //protect
阅读全文
摘要:HDC是一种“可画”的设备,WIN_PAINT是windows的一种消息事件,所有窗体可见部分都是他的杰作 实验环境:win7下vs2010 定义hdc设备,并利用WIN_PAINT绘画 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM
阅读全文
摘要:新建项目 Windows桌面向导: 选择配置项目 上机环境win7操作系统下vs2017,新建一个.c文件 简单窗口程序 #include<windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR
阅读全文
摘要:基本用法 #include<iostream> #include<time.h> #include<vector> #include<list> using namespace std; void main() { int a[] = {33,44,55,66,77,88}; int i; list
阅读全文
摘要:上机环境centos7下 Qt5.11 gcc 一些简单的函数封装 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> struct coach { char name[60]; int age; }; str
阅读全文
摘要:实验环境win7操作系统下vs2017 定义结构体用于存放教练信息 struct mycoach { char name[60]; int age; char skills[60]; }; 定义线性表存放教练信息 struct seqlist { struct mycoach* mch[10];//
阅读全文
摘要:基本用法 #include<iostream> #include<vector> using namespace std; void main() { vector<int> a(10,1);//初始化容器,开辟10个单位空间·元素初始化为1 int i; cout << "初始化变量" << en
阅读全文
摘要:接口声明的三种形式 抛出一切形式的异常 void freeobj(mycoach &t) { if (t.age < 16) { cout <<"精神可嘉~但还是年龄太小" <<endl; throw t.age; } if (t.months <= 12) { cout << "精神可嘉~再练一段
阅读全文
摘要:实验环境 win7 下的vs2017,基本原则:throw抛出的数据类型,和cathc语句的数据类型要一致 异常的引发和异常的处理可以分布在不同函数中,所以c++的异常是跨栈的 异常是由“地地道道“的错误所引发 #define _CRT_SECURE_NO_WARNINGS #include <io
阅读全文
摘要:该上机实验环境 linux mint IDE:qt5.11 代码复制到windows下vs2017报错,提示char* 类型不能直接赋值字符串 在linux mint下可以运行,测试目的:检验复制构造函数以及左移运算符在输出类对象方面的作用 #include <iostream> #include<
阅读全文
摘要:引用的本质 一个常量指针 #include<iostream> using namespace std; void crzaychange(int &a, int &b) { int c; c = a; a = b; b = c; } void main() { int a = 100; int b
阅读全文
摘要:重要意义:间接赋值的意义,实现了模块的功能划分,实现了软件作品的分层,使得模块接口和信息系统得以实现。 所谓二级指针就是指向指针的指针,其声明形式如下 int *p=NULL int **p1=NULL; p1=&p; 一级指针*运算,从所指向内存空间取出数值(类比:一级指针是藏宝图,所指向的内存空
阅读全文
摘要:char *其实就是char[length]的首元素地址 实验环境:centos7下qt5.11 中文char类型占3个字节 char[length]="特别车队"其实等价于char *mywords="特别车队" #include<stdio.h> #include<stdlib.h> #incl
阅读全文
摘要:函数模板存在的意义;如果同一函数,参数类型有所不同,相同的功能可能会定义多个函数实例,这十分繁冗 #include<iostream> using namespace std; void swap(int &a,int &b) { int temp = a; a = b; b = temp; } v
阅读全文
摘要:函数定义期望 通过cout<<对象,打印出复数的实部和虚部,这样一来,就需要重载cout类的位移<<运算函数,但是我们并不能拿到cout源码,在visual studio我们看到的也仅仅是他的定义 若想访问c1的私有属性,则应当声明为友元函数 通过定义可以看出cout类的返回值是ostream类型的
阅读全文
摘要:运算符重载是为了解决这样一类问题:我们知道对于整型可以用二元运算符(就是+,-,*,/因为这些运算都是两个变量参与,所以谓之二元,相比之下一元运算符就是自增,自减运算)直接进行运算,但对于类这样的数据结构直接的加减运算显然不被支持,这就需要用到运算符重载的概念 全局函数形式 返回类型 operato
阅读全文
摘要:打造c++抽象类 与其他语言的抽象类相似,抽象类不能实例化,也不能作为函数的参数,只可以作为指针类型或者引用类型 抽象类的基本特征 #pragma once #include<iostream> using namespace std; class jetplane { private: prote
阅读全文
摘要:首先我们随意定义4个类结构 class cl1 { private: int age; string name; static int addr; public: cl1() { } void iwasthelastlivingsoul() { } int getage() { return thi
阅读全文
摘要:多年前就粉c++,认为这是黑客专门用的语言,到现在这种情怀仍有增无减;那时朦朦胧胧的看到友元函数这个词顿时觉得深不可测;其实通过下面的例子我们不难发现,友元函数就是在类方法之外,通过函数访问类的私有成员的一种方法声明。不像人话是么?先看这样一个例子 定义了一个坐标点的类用于计算两点间的距离(参见解析
阅读全文
摘要:简单定义并间接调用 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<time.h> void singasong() { printf("%s\n","我爱的你啊,我爱的你,你在哪里啊,在哪里~"); } void main()
阅读全文
摘要:c++字符串声明:一种是声明字符数组并赋值,另一种是直接声明string类 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include "mycoach.h" using namespace std; vo
阅读全文
摘要:深浅拷贝 如果之前没有仔细了解深浅拷贝的定义,那么从字面意思上理解,深拷贝大概是地址拷贝,因为它足够”深”嘛,那浅拷贝就是仅仅拷贝值喽,谁叫它那么“浅”,然而生活跟我们开了个巨大的玩笑,这俩意思正好满拧,我们不禁觉得,按照这种说法,“咬了一口”应该叫“闻了闻”,用社会学老师的话说“这不他妈精神分裂吗
阅读全文
摘要:#include <iostream> using namespace std; void spacealloc_c() { //开辟内存空间 C语言风格 int *p = (int *)malloc(sizeof(int)); *p=10; if(p!=NULL) { free(p); p=NUL
阅读全文
摘要:为了让代码更贴合实际项目需要,我们分别用xxx.h文件,xxx.cpp文件来包含类的定义,类的声明和类的调用部分,实验平台vs2010 mycoach.h文件 #pragma once #include<iostream> #include<string> using namespace std;
阅读全文
摘要:把代码编译成二进制文件 预处理 头文件,宏定义展开,条件编译 干掉注释代码 编译成汇编代码 生成目标代码.o (还不能执行) 链接(动态库)生成可执行程序 xxx.out 运行前,内存已经存在分区,执行时代码才载入内存 运行前内存分为(代码区 只读,函数;data 初始化的数据,全局变量,静态变量(
阅读全文
摘要:内联函数与普通函数的区别 传统函数的动作包括:压栈,跳转,返回,而内联函数直接在调用处执行函数体的命令,内联函数短小精悍,不允许包括条件判断,分支结构
阅读全文
摘要:这些上机实验在Qt5.9上完成的,具体步骤 结构体引用 #include <iostream> #include<stdlib.h> using namespace std; struct mycoach { string name; int age; }; void *addcoachinfo(m
阅读全文
摘要:计算机与外部设备的交互依靠文件完成 文件是记录在外部介质上的数据的集合;例如1.c 是源码 1.exe可执行的文件 文件的分类 按组织结构: 记录文件:有一定结构的文件,可以解析成字段值的文件; 流式文件:对于源代码一类的属于流式文件(由一个个字符,字节按顺序组成) 按存储介质: 普通文件 存储介质
阅读全文
摘要://int a[3][4] = { { 66, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; //读取二维数组任意元素hint int(*)a[4] i,j //函数对于数组没有副本,数组多了会非常浪费cpu和内存 //对于一维数组,作为参数可以使用
阅读全文