
C++Primer
Big_Study_Father
这个作者很懒,什么都没留下…
展开
-
_countof _crt_countof宏
stdlib.h#ifndef _countof #define _countof __crt_countof#endifvcryntime.h#ifdef __cplusplus extern "C++" { template <typename _CountofType, size_t _SizeOfArray> c...原创 2019-10-07 01:48:16 · 627 阅读 · 0 评论 -
C++Primer
定义模板1.我们可以像这样定义一个函数模板template<class T>int compare(const T&a, const T&b) { if (a < b) return 1; else return 0;}当我们调用模板时,编译器使用函数实参为我们推断出模板实参。编译器用模板推断出的模板参数来为我们实例化一个特定版本的函数。//对...原创 2019-09-26 09:12:25 · 187 阅读 · 0 评论 -
C++STL_Day2
trivial,non-trivial 函数,POD类型trivial,non-trivial 函数,POD类型trivil,即不重要的,在以下四类函数中区分。构造函数 ctor拷贝构造函数 copy拷贝赋值运算符(赋值函数) assignment析构函数 dtor这四种函数只要被显示声明(定义的话当然更是了),则为non-trivial类型。class A { A(); ...原创 2019-09-19 20:40:22 · 264 阅读 · 0 评论 -
C++TinySTL
C++ typenameSTL中到处都是 typename …; typedef typenmae … 的用法,但是一开始真的不知道是在搞些什么玩意。 //略去了参数与函数体,返回值为什么要搞个typename?typename iterator_traits<RandomIter>::difference_typedistance_dispatch(...){....}...原创 2019-09-18 12:24:35 · 476 阅读 · 0 评论 -
C++Primer动态内存
静态内存:保存局部static对象,类static数据成员,定义在任何函数外的变量。栈内存:保存定义在函数内的非static对象。分配在静态内存与栈内存中的对象由编译器自动创建与销毁。对于栈对象,仅在其定义的程序块运行时才存在;static对象在使用前分配,程序结束时销毁。除此之外,每个程序还有有一个内存池。这部分内存被称作自由空间(free store)或堆(heap)。程序用堆来存储动态...原创 2019-09-17 01:48:10 · 208 阅读 · 0 评论 -
C++ 拷贝控制
拷贝,赋值与销毁如果一个构造函数的第一个参数是自身类类型的引用,且额外参数都有默认值,则此构造函数是拷贝构造函数class Foo{public: Foo(); Foo(Foo&); //拷贝构造函数};拷贝构造函数在几种情况下都会被隐式使用,因此通常不会是explicit(限制隐式转换)的。如果我们没有为一个类定义拷贝构造函数,编译器会为我们定义一个合成的拷贝构造...原创 2019-09-15 01:12:26 · 261 阅读 · 0 评论 -
C++Primer OOP
概述面向对象程序设计 的核心思想是数据抽象,继承和动态绑定。通过使用数据抽象,我们可以将类的接口与实现分离;使用继承,可以定义相似的类型并对其相似关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。C++语言中,基类将类型相关的函数与派生类不做改变直接继承的函数区别对待。对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声...原创 2019-09-10 20:56:11 · 186 阅读 · 0 评论 -
C++ Primer const
#include<iostream>#include<string>#include<cstring>#include<memory>#include<vector>using namespace std;int main() { //1.因为const对象创建后其值就不能改变,所以定义时必须初始化 ...原创 2019-06-29 22:42:54 · 227 阅读 · 0 评论