
c/c++
williamgavin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++的命名返回值优化问题
文章目录背景知识问题引出问题解决reference背景知识copy构造函数在以下三种情况下会调用:对象初始化函数形参值传递返回局部对象问题引出看c++运算符重载时碰到一个问题,代码如下,文件名为operatorTest.cpp,重点看看operqtor+这个函数。# include <iostream>using namespace std;class dem...原创 2020-04-13 10:31:25 · 280 阅读 · 0 评论 -
windows下的gcc使用
缘起在windows有很多集成开发环境(vs系列,code::blocks等等)可以用,为什么要使用gcc在dos下面编译一个c程序呢?因为博主最近要看一下uC/OS-II方面的东西,然后教材使用的是:任哲的《嵌入式实时操作系统μCOS-II原理及应用》,在这本书里面介绍将c语言程序一步步编译运行的时候使用的是Borland C++3.1精简版,这个编译器在Turbo C的时代是非常受欢迎的...原创 2018-11-08 20:10:17 · 22902 阅读 · 2 评论 -
浅谈c++的模板机制(二) -- 类模板
初探类模板类模板做函数参数类模板的继承从一个类模板派生出一个普通类从一个类模板派生出一个类模板初探类模板上一篇文章简单介绍了c++的模板机制以及函数模板:浅谈c++的模板机制(一) – 函数模板 这篇文章主要介绍c++的类模板。先来看一个具体实例:template <typename T>class A{private: T...原创 2018-06-17 21:12:15 · 957 阅读 · 0 评论 -
浅谈c++的模板机制(一) -- 函数模板
浅谈c++的模板机制泛型编程函数模板为什么会出现函数模板初识函数模板函数模板语法函数模板偶遇普通函数(重载)模板机制的实质参考资料浅谈c++的模板机制泛型编程泛型编程即以一种独立于任何特定类型的方式编写代码。可以实现算法和数据结构的分离。简单来说就是你写的代码不局限于类型(这句话往后面看会越来越清晰)。模板就是泛型编程的基础。...原创 2018-06-09 19:53:43 · 4249 阅读 · 0 评论 -
C++面向对象模型初探
C++对象模型可以概括为以下两部分:1> 语言中直接支持面向对象程序设计的部分, 主要设计如构造函数、析构函数、虚函数、继承、多态等等。2> 对于各种支持的底层实现机制基础知识:c++的类从面向对象理论出发, 将变量(属性)和函数(方法)集中定义在一起, 用于描述现实世界中的类。从计算机的角度出发, 程序依然由数据和代码段构成。C++编译器是如何完成面向对象到计算机程序原创 2018-01-01 15:57:24 · 250 阅读 · 1 评论 -
指针指向紧邻对象所占空间的下一个位置
指针的值:1,指向一个对象2, 指向紧邻对象所占空间的下一个位置3, 空指针,意味着指针没有指向任何对象4,无效指针,也就是上述情况之外的指针问题:这二种情况是什么意思?为什么需要?其实就是指向一个对象的后一位置,这个位置是不存在对象的,对此指针解引用将会是未定义的结果。这种指针主要作用是用来标识有效对象的边界,一旦达到这里就表示要有效对象要结束了,当前已超原创 2017-12-17 14:57:29 · 4091 阅读 · 0 评论 -
浅谈C++中的继承
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。类和类之间的关系有三种,分别是:包含关系、使用关系和继承关系。下面主要来谈谈继承。一: 继承概述class 派生类名: 访问控制 基类名{}什么是访问控制?在C++里面一共有三种访问控制方式, 分别为:private(私有)、protected(保护原创 2017-12-16 20:58:29 · 281 阅读 · 0 评论 -
c语言中getchar()函数一个常见Error
getchar() 从这个名字来看应该是 得到一个字符。 正好C语言里面有一个char类型, 很容易就出现了如下程序:# include int main (void){ char c; while((c = getchar()) != EOF) { putchar(c); } return 0;}主要谈一下下面这条语句:原创 2017-12-22 18:27:23 · 2792 阅读 · 0 评论 -
c++中的匿名对象的去留问题和深拷贝浅拷贝
匿名对象的去和留问题:匿名对象的去和留主要取决于你用什么去接收这个对象, 具体如下:# include using namespace std;class Test{private: int a;public: Test() { cout << "我是无参构造函数" << endl; } Test(int x) { a = x; cout << "我是原创 2017-12-09 19:15:50 · 993 阅读 · 0 评论 -
浅谈C++中的构造函数与析构函数
先放图(怎么传上来成这个样子了 -_-), 由Freemind做成构造函数是用类定义对象时第一个调用的函数 , 可以用来初始化对象, 一般由编译器自动调用。析构函数是对象生命周期结束前调用的函数, 由编译器调用。构造函数:Q1:什么是构造函数?A1:形如:类名(形参列表){} 这样的函数就是构造函数。Q2:如何调用构造函数?A2:构造函数原创 2017-12-09 17:40:35 · 363 阅读 · 0 评论 -
详解C中volatile关键字
本文转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序转载 2017-10-17 20:14:36 · 337 阅读 · 0 评论 -
C语言中字符串与数字间的转换
在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。字符串是以“\0”作为结束符。C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。 ●字符串输出函数puts。 ●字符串输出函数gets。 ●字符串连接函数strcat。 ●字符串复制函数strcpy。 ●测字符串长度函数strlen。字符串是面试的重点考查部分的相关知识,通过考查字符串的相关知识转载 2017-09-18 21:43:13 · 711 阅读 · 0 评论 -
追踪递归函数
主要讨论递归的执行顺序, 内存分配, 还有函数的调用原创 2017-08-06 10:34:12 · 622 阅读 · 0 评论 -
c和指针 -- 字符串、字符、字节
字符串基础字符串就是一串零个或多个字符, 并且以一个位模式为全0的NUL字节结尾; 但是NUL并不是字符串的一部分, 所以字符串长度不包括NUL。字符串长度函数原型:size_t strlen(char const *string){ int length; for (length = 0; * length ++ = '\0'; ) length += 1;原创 2017-08-10 16:09:00 · 484 阅读 · 0 评论 -
c之数组
数组作为函数的参数:我们都知道数组名其实就是指向数组第一个元素的指针(即&array[0]), 将数组名传递给函数的是该指针的一份拷贝。 如果在函数中执行了下标引用, 实际就是对这个指针进行了间接访问操作, 通过这种操作可以访问和修改调用程序的数组元素。如何理解数组名的传入方式呢?(传值 or 传址)Q:什么是传址调用?A:传址调用:通过传递一个指向所需元素的指针, 然后在函数中对该指针执行间接访问原创 2017-08-09 17:25:53 · 374 阅读 · 0 评论 -
c语言中的求值顺序
首先弄清楚一个问题:求值顺序并不是运算顺序原创 2017-07-10 08:46:57 · 3366 阅读 · 1 评论 -
c陷阱与缺陷第二章
c缺陷与陷阱第二章部分知识点原创 2017-07-09 20:05:25 · 794 阅读 · 0 评论 -
用指针给数组赋值的一个小问题
问题是这样的, 我打算输入与元素为数组赋值, 然后反向输出数组元素# include int main(void) { int a[10], * p = a, i; for (i = 0; i < 10; i++) scanf("%d", p++); for(i = 9; i >= 0; i--) // 用指针输出时, i 仅仅用来控制原创 2017-06-03 11:28:29 · 13442 阅读 · 2 评论 -
对数组的一些操作
对数组的一些基本操作, 包括:初始化 ,追加 插入 删除 元素, 排序等。因为 c 语言中没有布尔类型, 所以在下面程序中用 0 表示 false, 1 表示true。# include #include typedef struct stu { int len; // 数组长度 int *pBase; // 数组第一个元素地址 i原创 2017-06-06 18:30:12 · 1586 阅读 · 0 评论