C/C++
lk小强
水滴穿石,一步一个脚印成长为大神
展开
-
作业2:设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,根据坐标能计算出矩形的面积
原创 2018-01-06 09:18:52 · 27248 阅读 · 0 评论 -
toeplitz 托普利兹矩阵
#include<iostream>using namespace std;#define ARR_LENGTH 32#define MARIXSIZE 80int main(){ double matrix[MARIXSIZE][MARIXSIZE] = { 0 }; double dArr[ARR_LENGTH] = {1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8...原创 2018-04-26 16:01:26 · 2643 阅读 · 0 评论 -
VS.net中快捷键收缩和展开代码段 + 快捷键一览表
VS.net中快捷键收缩和展开代码段 + 快捷键一览表转载 2018-04-26 16:38:57 · 1485 阅读 · 0 评论 -
2、类和对象
1前言C++学习技术路线及目标 研究C++编译器管理类和对象的方法===》避免死角 c++编译器对类对象的生命周期管理,对象创建、使用、销毁 c++面向对象模型初探 c++面向对象多态原理探究 操作符重载 C++基础课程学习完毕以后,有...原创 2018-06-22 14:00:43 · 160 阅读 · 0 评论 -
3对象的构造和析构+4静态成员变量成员函数 +5 C++面向对象模型初探+6友元 +8运算符重载
3.1构造和析构函数1构造函数和析构函数的概念有关构造函数 1构造函数定义及调用1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数;2)构造函数在定义时可以有参数;3)没有任何返回类型的声明。2构造函数的调用 自动调用:一般情况下C++编译器会自动调用构造函数手动调用:在一些情况下则需要手工调用构造函数 有关析构函数 3)析构函数定义及调用 1)...原创 2018-06-26 14:03:06 · 365 阅读 · 0 评论 -
day1学习
1、C++对C的扩展1简单的C++程序//02_简单的C++程序helloworld#include <iostream>//包含c++的头文件using namespace std;//使用命名空间std标准的命名空间(在这个命名空间中定义了很多标准定义)int main(){ //cout 标准输出 黑屏幕 //<< 左移操作符 在c++里面 功能...原创 2018-06-09 22:37:49 · 311 阅读 · 0 评论 -
理解为什么前置++后置++问题,为什么最终都实现了+1问题
#include <iostream>using namespace std;class Complex{private: int a; int b; //全局函数 重载+运算符 friend Complex operator+(Complex &c1, Complex &c2); //重载 前置++ friend Complex& ope...原创 2018-06-25 14:15:41 · 308 阅读 · 0 评论 -
3、继承和派生+4、多态+5、纯虚函数和抽象类
3.1继承概念面向对象程序设计有4个主要特点:抽象、封装、继承和多态性。我们已经讲解了类和对象,了解了面向对象程序设计的两个重要特征一数据抽象与封装,已经能够设计出基于对象的程序,这是面向对象程序设计的基础。要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特 征——继承性和多态性。本章主要介绍有关继承的知识,多态性将在后续章节中讲解。继承性是面向对象程序设计最重要的特征,可以说...原创 2018-07-01 13:48:37 · 550 阅读 · 0 评论 -
字符串尾部得加'\0'原因
'\0'一般放在字符串的结束处,表示字符串的结束,其是ascii值为0的字符的转义。在头文件#include <string.h>中包含的一些字符串处理函数等中,一般处理字符串时,都是一'\0'作为字符串的结束,如果一个字符串中没有'\0'这个结束字符,那么这些函数将不能确定字符串的结束位置在哪儿,从而引起一些不必要的错误。\0'在c语言中代表着字符串的结束在你不输入'\0'的时候 字...原创 2018-07-01 13:47:45 · 10137 阅读 · 0 评论 -
socket库c++模型设计和实现
5.4.1案例:socket库c++模型设计和实现企业信息系统框架集成第三方产品 案例背景:一般的企业信息系统都有成熟的框架。软件框架一般不发生变化,能自由的集成第三方厂商的产品。案例需求:请你在企业信息系统框架中集成第三方厂商的Socket通信产品和第三方厂商加密产品。第三方厂商的Socket通信产品:完成两点之间的通信;第三方厂商加密产品:完成数据发送时加密;数据解密时解密。】案例要求: ...原创 2018-07-01 14:22:42 · 2421 阅读 · 0 评论 -
6、 函数模板和类模板
函数模板和类模板前言C++提供了函数模板(functiontemplate)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。1)C++提供两种模板机制...原创 2018-07-15 15:30:38 · 2319 阅读 · 0 评论 -
9 C++输入和输出流
9.1 I/O流的概念和流类库的结构程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。C++输入输出包含以下三个方面的内容:对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。以外存文件为对象的输入输出...原创 2018-07-17 10:07:23 · 822 阅读 · 1 评论 -
10、STL实用技术专题
10、STL实用技术专题10.1STL(标准模板库)理论基础10.1.1基本概念#include <iostream>#include <vector>#include <algorithm>using namespace std;//容器中 装 基础数据类型变量void main01(){ vector<int> v...原创 2018-07-18 15:11:33 · 405 阅读 · 0 评论 -
案例:学校演讲比赛
10.4 STL综合案例案例:学校演讲比赛1)某市举行一场演讲比赛,共有24个人参加,按参加顺序设置参赛号。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。2)比赛方式:分组比赛第一轮分为4个小组,根据参赛号顺序依次划分,比如100-105为一组,106-111为第二组,依次类推,每组6个人,每人分别按参赛号顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。...原创 2018-07-24 11:41:20 · 660 阅读 · 0 评论 -
5.6 C面向接口编程和C多态
#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>//数组指针 语法 梳理//定义一个数组类型//定义一个指针数组类型//定义一个指向 数组类型的指针 数组类的指针void main01(){ int a[...原创 2018-07-07 20:29:47 · 690 阅读 · 0 评论 -
7、C++的类型转换
#include <iostream>using namespace std;/*C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)aC++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 static_cast 静态类型转换。如int转换成char reinterpreter_cast 重新解释...原创 2018-07-15 19:41:51 · 173 阅读 · 0 评论 -
C++各种库函数
cstdlib库函数在C++中也可以使用 #include <stdlib.h>,因为C++兼容了C语言中的操作。不过一般更推荐使用C++风格的头文件,即 #include <cstdlib>。cstdlib实现了stdlib.h中的所有功能,不过是按照C++的方式写的,所以与C++语言可以更好的配合。下面看cstdlib(即:stdlib.h)中常用到的函数:rand函数...原创 2018-04-26 16:01:07 · 2475 阅读 · 0 评论 -
标准库vector
1.1. vector 对象的定义和初始化vector 类定义了好几种构造函数,用来定义和初始化 vector 对象。表 3.4 列出了这些构造函数。 vector v1: vector 保存类型为 T 对象。默认构造函数 v1 为空。 vector v2(v1); v2 是 v1 的一个副本。 vector v3(n, i); v3 包含 n 个值为 i 的元素。 vector v4(n); v...原创 2018-04-26 16:00:48 · 238 阅读 · 0 评论 -
谭浩强c++ 异常处理
书上例题14.1#include <iostream>#include <cmath>using namespace std;void main(){ double triangle(double,double,double); double a, b, c; cin >> a >> b >> c; try//在try...原创 2018-05-10 16:24:16 · 209 阅读 · 0 评论 -
希望解决这个友元类这个bug问题
#include using namespace std; class A{public:friend class B; //B类 是 A的好朋友 ,在B中可以访问A类的私有成员 私有函数//1 声明的位置 和 public private没有关系//声明一个友元函数friend void modifyA(A *pA,int _a);//2 函数modifyA转载 2018-01-15 19:13:54 · 139 阅读 · 0 评论 -
void prinT(Test *pT)//这个函数 这里为什么要用 我完全可以用t3.print()这样来调用类里面函数方法就可以,为何多此一举来这样一步???
//网上更加清晰的全局函数与成员函数关系#include using namespace std;class Test{public:Test(int a, int b){this->a = a;this->b = b;}~Test(){cout }Test TestAdd(Test &tmp)////就是返回当前原创 2018-01-16 09:34:55 · 339 阅读 · 0 评论 -
运算符重载+ -两种方法以及前后置++/--实现
#include using namespace std;/*全局函数 类成员函数方法实现运算符重载步骤1)要承认操作运算符是一个函数,写出函数名称2)根据操作数,写出函数参数3)根据业务,完善函数返回值(看函数但是返回引用 还是指针 元素),以及实现函数业务*/class Complex{public:friend Complex operator+(原创 2018-01-16 10:52:28 · 3685 阅读 · 3 评论 -
指针数组自我结束能力(三种表示方法)
字符数组的自我结束标志当我们输出字符串时,是否思考过,假如不知道字符数组的长度,我们应该怎么判断数组结束呢?#define _CRT_SECURE_NO_WARNINGS #include #include #include void main(){int inum = 0;int pos = 0;int a[10];int原创 2018-01-31 14:40:18 · 814 阅读 · 0 评论 -
一级指针的开辟空间和释放资源的两种方法
#define _CRT_SECURE_NO_WARNINGS #include #include #include typedef struct Teacher{char name[64];int age;int id;}Teacher;void printArray(Teacher *array, int num){fo原创 2018-01-31 16:49:46 · 1863 阅读 · 0 评论 -
//这里为什么定义个display()全局函数,作为舞台,让对象唱戏,不能直接把他们放在主函数里面吗,这样写好处在哪,两者区别在哪?????
#include using namespace std;class Name{public:Name(char *myn)//初始化构造函数{size = strlen(myn);pName=(char *)malloc(size + 1);strcpy(pName,myn);}//拷贝构造函数Name(Name &obj){size =原创 2018-01-17 10:44:44 · 523 阅读 · 0 评论 -
结构体中套一级 二级指针问题
#define _CRT_SECURE_NO_WARNINGS #include #include #include typedef struct Teacher{char name[64];int age;char *alisname;//注意这里只是定义了一级指针变量,没有给他开辟内存空间char **stuname;//结构体下挂二级指针,没有给他开辟内原创 2018-02-01 11:08:05 · 862 阅读 · 0 评论 -
//1、有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。 //要求1:请自己定义一个接口(函数),并实现功能;70分 //要求2:编写
//1、有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。//要求1:请自己定义一个接口(函数),并实现功能;70分//要求2:编写测试用例。30分//int trimSpace(char *inbuf, char *outbuf);#define _CRT_SECURE_NO_WARNINGS #inc原创 2018-01-25 15:30:54 · 513 阅读 · 0 评论 -
讨论下内存空间分配在堆区,栈区不同点
//str所指向的内存空间能修改才行,否则会报错int trimSpace2(char *str){char *p = str;int ret = 0;int i = 0;int ncount = 0;//这里strlen()测的长度 不包括‘\0’结尾符//sizeof()测的是内存块大小 包括‘\0’结尾符int j = strlen(str) -原创 2018-01-26 11:04:23 · 142 阅读 · 0 评论 -
运用递归调用方法来反转字符串
#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>//1通过递归调用方式 逆向打印//2 递归和全局变量 (把逆序的结果存入全局变量)//3递归和局部变量(递归指针作函数参数)//1通过递归调用方式 逆向打印voi...原创 2018-01-26 16:43:19 · 3217 阅读 · 3 评论 -
两头堵模型(用来去除有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。),工程开发经常需要用到的
//1、有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。//要求1:请自己定义一个接口(函数),并实现功能;70分//要求2:编写测试用例。30分//int trimSpace(char *inbuf, char *outbuf);int trimSpace(char *str, char *newstr){原创 2018-01-26 18:54:27 · 353 阅读 · 0 评论 -
不理解为什么调用一级指针作函数参数时候,就不能把myp1 = NULL,
产生野指针原因的本质:指针变量和它所指内存空间变量是两个不同的概念。解决办法:三步曲1、定义指针时,把指针变量赋值成NULL2、释放内存时,先判断指针变量是否为NULL3、释放完内存后,把指针变量重新复制成NUL#define _CRT_SECURE_NO_WARNINGS #include #include #incl原创 2018-01-27 18:51:29 · 170 阅读 · 0 评论 -
STL学校演讲比赛介
/*==========================================================================================================1)某市举行一场演讲比赛( speech_contest ),共有24个人参加。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。2)比赛方式:分组比赛,每组6个人;选手每次要随机分组,进...原创 2018-03-07 21:59:20 · 416 阅读 · 0 评论 -
实参修改形参的问题
#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>//1指针作输出,被调用函数分配内存//2指针作输入,主调用函数 分配内存//求文件中两段话的长度int getMem(char **myp1, int *len1, char **my...原创 2018-04-21 15:54:30 · 410 阅读 · 0 评论 -
8、异常处理机制专题
8、异常处理机制专题前言1)异常是一种程序控制机制,与函数机制独立和互补 函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它依附于栈结构,却可以同时设置多个异常类型作为网捕条件,从而以类型匹配在栈机制中跳跃回馈.2)异常设计目的: 栈机制是一种高度节律性控制机制,面向对象编程却要求对象之间有方向、有目的的控制传动,从一开始,异常就是冲着改变程序控...原创 2018-07-16 09:09:04 · 154 阅读 · 0 评论