
C++
本专栏介绍 C++ 语言相关语法与代码案例。
annjeff
爱编程,爱分享。
展开
-
基于模板实现 MyArray 数组
基于模板实现 MyArray 数组文章目录基于模板实现 MyArray 数组1. 基本要求2. 代码实现3. 遇到问题4. 代码测试1. 基本要求MyArray 数组需要支持内置数据类型与自定义数据类型MyArray 数据部分存储在堆区MyArray 提供构造函数的函数需要指定数组容量MyArray 需要提供析构函数,释放堆区内存MyArray 需要提供拷贝构造函数MyArray 需要提供 operator=,operator[] 重载操作符MyArray 需要提供 push_bac原创 2020-10-07 20:16:34 · 759 阅读 · 0 评论 -
C++ operator= 操作符重载返回值为什么是自身的引用?
C++ operator= 操作符重载返回值为什么是自身的引用?文章目录C++ operator= 操作符重载返回值为什么是自身的引用?1. 内置数据类型连续赋值2. 如果 operator= 返回非自身引用3. operator= 返回自身引用1. 内置数据类型连续赋值int a, b, c = 9;a = b = c; // A(a = (b = c)) // B(a = b) = c; // CA 处基本类型连续赋值,其效果相当于 B 处,赋值顺序为 [c–>b --&g原创 2020-10-07 17:18:02 · 2272 阅读 · 0 评论 -
C++ 之继承
C++ 继承0.利用 cl.exe 工具查看某个类的对象内存模型Visual Studio 自带了一个很有用的工具cl.exe。使用该工具可以查看 【该类对象的内存模型】 。该工具的使用方法:找到 VS 20XX的开发人员命令提示符,单击打开使用 cd 命令,跳转至我们要查看的类所在目录使用命令:**cl /d1 reportSingleClassLayout类名 "文件名"**即可查看【指定类对象的内存模型】例如:cl /d1 reportSingleClassLayoutDerive "原创 2020-06-16 21:33:54 · 291 阅读 · 0 评论 -
C++ 虚函数与动态绑定原理剖析
C++ 虚函数与动态绑定1. 虚函数基本概念 基类(Base)我们记作 B ,派生类类(Derive)我们记作 D 。有时候会出现这么一种状况:对于某些函数,基类 B 希望它的派生类 D 各自定义适合自身的版本,此时基类 B 就将这些函数声明成虚函数(virtual function)。将一个成员函数声明成虚函数,只需要在函数前添加 virtual 关键字。Tips:派生类必须在其内部对所有重新定义的虚函数进行声明。2. 虚函数的几点说明所有原创 2020-06-14 22:36:36 · 2278 阅读 · 0 评论 -
vector was not declared in this scope【记一次粗心大意犯的错误】
vector was not declared in this scope【记一次粗心大意犯的错误】#include <iostream>#include <vector>int main(int argc,char** argv){ vector<int> vec; return 0;} 因为要使用vector容器,...原创 2019-08-15 22:15:19 · 17221 阅读 · 14 评论 -
C++构造函数 拷贝构造函数 析构函数 赋值的运行次序问题
#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;class Test{public: Test() { cout << "test()..." << endl; m_x = 0; m_y = 0; } Test(int x, int y...转载 2019-06-01 14:40:56 · 403 阅读 · 1 评论 -
C++函数重载、函数重写、函数重定义之辨析
函数重载、函数重写、函数重定义之辨析文章目录函数重载、函数重写、函数重定义之辨析1.几个问题2. 函数重载2.1 函数重载的原理2.2 函数重载需要注意的事项3. 函数重定义3.1 函数重定义的概念3.2 函数重定义背景引入3.3 函数重定义3.4 关于函数重定义的一点补充4. 函数重写4.1 函数重写的概念4.2 函数重写问题引入4.3 如何实现函数重写4.4 函数重写的列子5.总结广告...原创 2019-06-12 16:21:52 · 751 阅读 · 0 评论 -
手工动态分配空间打造二维数组
手工动态分配空间打造二维数组#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>char **getMem(int n){ int i = 0; char **buf = (char **)malloc(n * sizeo...原创 2019-04-09 13:56:22 · 477 阅读 · 0 评论 -
C++ vector学习笔记
C++ vector学习笔记目录C++ vector学习笔记0.vector使用迭代的方式打印内容1.vector的几种初始化方式2.vector常用的赋值操作3.vector大小操作4.vector 存取数据5.vector插入和删除元素6.vector巧用swap缩减空间7.vector中reserve 预留空间 resize区别0.vector使...转载 2019-03-19 16:58:57 · 461 阅读 · 1 评论 -
使用C++编译器按C标准来编译C语言代码
使用C++编译器按C标准来编译C语言代码//防止头文件重复包含#pragma once#ifdef __cplusplusextern "C"{#endif//需要按C标准编译的代码#ifdef __cplusplus}#endif ...原创 2018-12-07 16:07:54 · 4495 阅读 · 0 评论 -
C++函数模板学习笔记
1.引出问题我们需要一个函数来实现比较两个值得大小,要求可以比较int类型,char 类型等。#define _CRT_SECURE_NO_WARNINGS#include&lt;iostream&gt;using namespace std;//对两个int类型数值比较大小int compare(int num1, int num2){ if (num1 &...原创 2018-08-02 16:43:16 · 253 阅读 · 0 评论