C/C++
zxucver
这个作者很懒,什么都没留下…
展开
-
C语言 枚举类型在VS2010上无法实现自增,自减操作
如果一个变量只有几种可能的值,那么这个变量可以被定义为枚举类型。 枚举的意思就是把可能的值一一列举出来,那么变量的值也只限于列举出来的范围中。 枚举类型的说明: 1.声明:enum Color{red,yellow,blue,white,black}; 2.定义:enum Color i,j,k,pri; 3.枚举元素代表一个整数,默认顺序是从0开始,可以用%d来输出,比如#include原创 2017-01-02 22:22:38 · 3946 阅读 · 1 评论 -
C++ 将控制台打印的内容写入.txt文本
在程序中控制台输出的内容写入.txt文本可以更方便的查看结果,当然可也用代码操作文本,还可以用cmd关联编译器生成的.exe文件。具体为:比如生成的.exe文件路径为:F:\bebut\Debug\bebut.exe 打开电脑的cmd控制台,将路径定位到.exe所在的路径下,然后输入:bebut.exe>name.txt(要回车确定)cmd将关联应用程序与txt文本,如果此时程序的根目录下没有tx原创 2017-03-14 22:27:21 · 6961 阅读 · 1 评论 -
C++ 类的知识点总结
(1)在类的定义过程中,不使用public与private声明的话,类中的数据和成员函数都默认为私有的。(2)类中的成员限定访问符:public与private是可以多次出现的,而且不限定先后顺序。(3)C++继承和发展了C语言中的结构体类型,该类型在C语言知识数据的合集,在C++中加入了函数。所以这样的扩展让结构体类型具有了与类相似的功能(数据和函数),C++允许用struct去声明一个类,但是与原创 2017-03-26 14:15:12 · 2616 阅读 · 0 评论 -
C++ 静态数据成员与静态成员函数
在类中的数据成员或成员函数定义或声明前以static关键词开头,即构成静态数据成员与静态成员函数。静态数据成员1.静态数据成员的实现class Time{public : void showtime();private: static int hour; //定义hour为静态数据成员 int minute; int sec;};2.静态数据成员的意义C++为原创 2017-05-12 14:40:11 · 2172 阅读 · 1 评论 -
C++ 类的继承与派生
继承性是面向对象程序设计最重要的特性之一,使软件有了可重用性,C++提供的类的继承机制。继承与派生的概念一个新类从已有的类那里获得已有的特性,这种现象称为类的继承。同样也可以说成已有的类派生出来了新的类。类A继承自类B也就是类B派生了类A。所以继承和派生的关系就像小学时把字句和被字句的造句一样。有了继承与派生后,就有了父类/基类与子类/派生类,C++中将类B称为父类/基类,将类A称为子类/原创 2017-05-16 10:20:39 · 6846 阅读 · 3 评论 -
C++ 构造函数总结
C++提供了构造函数来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,构造函数不需要用户来调用它,而是建立对象时自动执行。 构造函数的名字必须与类名相同,构造函数不具有任何类型,不返回任何值(与void类型不同,不是返回空,而是没有返回值)。1.无参数的构造函数#include <iostream>using namespace std;class Time{public原创 2017-05-10 16:57:22 · 18437 阅读 · 2 评论 -
C++ 一个例子说明.c_str()函数
先举个例子说明一下:atoi()是C语言中的字符串转换成整型数的一个函数,在例子的代码里面会用到,其函数原型为:int atoi(const char *nptr);下面是一个C语言的代码,可以正常运行:#include <stdio.h>#include <stdlib.h>int main(){ char *str = "123"; int num = atoi(str)原创 2017-07-19 14:33:48 · 7575 阅读 · 0 评论 -
C++ 指针和引用的区别
指针是C系语言的一大特色,也在很大程度上体现着C/C++的精髓,一个数据对象的内存地址称为该数据对象的指针。本质上指针是一个变量,所以它有自己的类型,这个类型决定了它可以指向何种类型的数据对象;之所以使用数据对象这个说法,是因为指针能够代表的远远不止变量,还包括数组,数组元素,结构体,甚至函数。引用是C++对C语言的一个补充,它的作用是为一个变量起一个别名。 个人理解:很多时候下把“引用”当做一个原创 2017-08-20 15:22:12 · 1836 阅读 · 0 评论 -
C++ 引用与引用作为函数的参数
对一个数据建立一个“引用”,他的作用是为一个变量起一个别名。这是C++对C语言的一个重要补充。原创 2017-03-05 15:49:20 · 43167 阅读 · 11 评论 -
C++ 传递动态内存
这部分内容在引用作为函数的参数这个blog中有一些涉及,为了讨论引用传递顺带了参数传递与指针传递,在这里从动态内存传递的角度梳理一下,先看这样一个题目: 下面五个函数中,哪些函数能够实现值的交换?#include "iostream" using namespace std;void swap1(int ,int);void swap2(int* ,int*);void swap3(in原创 2017-08-20 16:49:20 · 753 阅读 · 0 评论 -
C++ 指针常量与常量指针
吐槽一下: 指针常量与常量指针的翻译就好比机器学习中Regularization翻译成正则化一样,讲真,正则化这个说法确实要比规则化显得高端些,但是到了理解的时候,还是要按照规则化理解。指针常量与常量指针这个概念是一样的,英文里没有pointer const这个词,只有pointer to const和const pointer这两个词。而不管是指针常量还是常量指针他们的区别其实就是const关键原创 2017-09-06 15:28:42 · 840 阅读 · 0 评论 -
C++ 智能指针
转载自:C++ 智能指针详解简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boo原创 2017-09-06 21:34:19 · 583 阅读 · 0 评论 -
C++ 动态捕获整型数列
假设有这样一个要求,输入两列数字,第一列是数组中数字的个数,第二列数数组中的数字,中间以空格隔开,我们可以写出这样的一段代码:这里写代码片原创 2017-08-25 23:07:23 · 727 阅读 · 0 评论 -
C++工厂模式
工厂模式分为3种,即简单工厂模式、工厂方法模式、抽象工厂模式,C++的工厂模式主要利用到虚函数。简单工厂模式工厂方法模式抽象工厂模式原创 2019-08-28 23:40:40 · 10495 阅读 · 1 评论 -
C++ 函数模板
函数重载功能实现了一个函数名的重复定义,但是即使是这样,在程序中仍然需要分别定义每一个函数,如下连接: http://blog.csdn.net/chaipp0607/article/details/55281496为了解决这个问题,C++提供了函数模板。所谓函数模板,实际上是建立一个通用的函数,其函数的类型和形参类型不具体指定,用一个虚拟的类型来代替。这个通用函数就称为函数模板。原创 2017-02-18 10:55:36 · 679 阅读 · 0 评论 -
C/C++ #include<> 和 #include““的区别
我们都听过这样的说法:使用#include<> 程序会直接到标准函数库中找文件使用#include"" 程序会会先从当前目录中找文件,如果找不到会再到标准函数库中找文件所以,一般情况下我们引用标准函数库中的头文件时,用#include<>能有更高的效率,但是其实它的查找顺序非常严格:1.#include<>1.在编译器设置的include路径内搜索; 2.如果是在命令行中编译,则在系统的INCL原创 2017-03-22 22:00:00 · 8320 阅读 · 1 评论 -
C++ 利用指针和结构体实现一个函数返回多个值
介绍利用指针与利用结构体作为函数的返回值,实现一个函数返回多个值原创 2017-03-22 21:07:14 · 9914 阅读 · 0 评论 -
C语言指针引用二维数组
最近看谭浩强的《C程序设计》,第248页 例8.11 看到这里例子感觉有点懵,所以根据这个例子自己总结了下: 一.不用取地址符和指针 1.二维数组的元素: a[0][1] 2.二维数组的地址: 2.1 0行首地址:a 2.2 1行0列元素地址:a[1] 2.3 1行首地址 : a+1 二.用取地址符(当然只能表示数组的地址) 1.0行首地址:&a[0] 2.元素原创 2016-12-07 16:53:11 · 6058 阅读 · 0 评论 -
C++ 输入与输出
在C语言中,输入输出功能是通过调用scanf函数与printf函数实现,C++保留了这一用法。 scanf和printf函数被定义在stdio.h中,stdio.h是c语言中标准的输入输出函数库,和它对应的是C++的标准的输入输出流库iostream(也可以写为iostream.h)。在一些编译器中,如果只包含iostream也可以使用scanf和printf函数,这是因为一些编译环境默认连接了原创 2017-02-04 20:24:55 · 819 阅读 · 0 评论 -
C++ 函数的递归调用
在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归(recursive)调用。包含递归调用的函数称为递归函数。 比如:int test(int x){ int y; y = test(x); return(2*y);}以上是一个直接调用的例子,递归调用还包括间接调用,比如:int first(int x){ int b; b =原创 2017-02-06 00:11:24 · 13808 阅读 · 0 评论 -
C语言 指针和指针数组作main函数的形参
不带形参的main函数一般写成: int main() 或 int main(void) 表示mian函数没有参数,调用mian函数时不需要给出实参。而mian函数有形参的形式:int main( int argc, char** argv) int main( int argc, char *argv[]) 我是这样理解这两种方式,其中第一种方式 **argv是指针的指针,指针指向变量,指原创 2016-12-08 17:41:16 · 2797 阅读 · 0 评论 -
C++ 内置函数
调用函数时需要一定的时间和空间的消耗,一般的程序调用函数时的过程: 1.执行函数中调用前的语句; 2.转移到被调用函数的入口处,同时进行参数传递; 3.执行被调用的函数; 4.带回被调用函数的返回值; 5.接着执行主调函数中未执行的语句。这样就要求在转去被调用函数之前,要记下当时执行的指令的地址和其他相关信息,一遍在函数调用之后继续执行。在函数调用之后,流程返回到先前记下的地址处,并且根据原创 2017-02-08 23:26:04 · 6950 阅读 · 0 评论 -
C++ 函数重载
C++允许用同一个函数名定义多个函数,而这些函数的参数个数和参数类型可以不相同。这就是函数重载。注意是个数和类型都能不同其意义在于,如果想要实现一个功能,但是由于变量类型不同或参数个数不同的情况,需要定义不同名称的功能相同的函数,而函数重载功能可以允许用户只定义一个函数名,这个函数名有多个不同的含义,使得一个函数名可以多用,而在调用该函数时,系统会根据实参类型和个数的不同自动找到与之匹配的原创 2017-02-17 13:49:09 · 806 阅读 · 0 评论 -
C++ 声明,定义与初始化的基本概念
对于变量:官方的解释:声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。在C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外。同一个文件下: 对于变量而言,在同一个文件里面,很少使用声明这个原创 2017-03-01 16:39:37 · 10792 阅读 · 0 评论 -
C++ 字符串操作函数
由于字符串使用广泛,C和C++提供了一些字符串函数,包括字符串连接函数strcat,字符串复制函数strcpy,字符串比较函数strcmp,字符串长度函数strlen,在C语言中被定义在string.h中定义。在C++中被定义在cstring和string中。 关于string.h,cstring和string的区别: string.h 是C版本的头文件,包含比如strcpy、strcat之类的字原创 2017-02-23 17:28:58 · 7124 阅读 · 0 评论 -
C++ 强制类型转换和赋值中的类型转换
强制类型转换原C语言的形式:(类型名)(表达式)比如:(double)a //把a转换为double类型(int)(a+b) //把a+b的值转换为整型需要注意的是:如果强制类型转换的对象是一个变量,那么该变量不需要用括号括起来;但是如果对象是一个包含多项的表达式,则表达式应该用括号括起来。(int)(a+b) //把a+b的值转换为整型(int)a+b //把a的值转换为整型,然后加bC原创 2017-02-02 12:11:45 · 25688 阅读 · 2 评论 -
C语言 动态内存分配
动态内存分配涉及到堆栈的概念:堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。 全局变量分配在内存中的静态存储原创 2016-12-09 10:32:13 · 1236 阅读 · 0 评论 -
C++ 条件运算符和条件表达式
条件运算符是C++中唯一一个三元运算符,要求有三个操作对象,条件表达式的一般形式为:表达式1?表达式2:表达式3条件运算符的执行顺序是,先求解表达式1,若为真则求解表达式2,此时表达式2的值作为整个条件表达式的值。若表达式1的值为假,则求解表达式3,表达式3的值为整个条件表达式的值。max = (a>b) ? a : ba比b大时,关系表达式为真,条件表达式的值为a;b比a大时,关系表达式为假,条件原创 2017-02-04 11:41:48 · 12549 阅读 · 0 评论 -
C++ 基于过程与面向对象的基本概念
C语言是一种基于过程的编程语言,C++在此基础上发展而成,保留了C的绝大部分的功能和运行机制。同时增加了面向对象的机制,为了解决编写大型软件程序中的困难。基于过程从程序结构角度看,基于过程的程序中,函数是构成程序的基本部分,程序面对的是一个个函数。每一个函数都独立存在于程序中,除了主函数只能被操作系统调用外,其他函数可以相互调用。程序从main函数开始按照编程人员的设计顺序执行。面向对象在面向对象的原创 2017-03-01 23:01:53 · 2134 阅读 · 0 评论 -
C++ 字符串类,字符串变量与字符串数组
在C语言中,应用字符串需要定义字符数组,字符串需要存放在字符数组中。然后利用各种字符串操作函数对其操作。 http://blog.csdn.net/chaipp0607/article/details/56676791但是这种方式存在一些弊端,比如字符数组的大小是固定的,在进行字符连接或字符复制时,需要计算字符串与字符数组的长度,否则就可能发生一部分字符超出数组范围。为此,C++提供了一种新的数据原创 2017-02-26 15:58:56 · 5040 阅读 · 0 评论 -
C++ using用法
using作用: 引入命名空间,指定别名,在子类中引用基类的成员。原创 2019-09-10 20:43:46 · 20257 阅读 · 2 评论