C++基础
C++基础语法和编码规范等
dailingGuo
这个作者很懒,什么都没留下…
展开
-
c++ push_back与emplace_back
push_back与emplace_back本节直接讨论在向容器添加数据时,插入(push_back、push_front、insert等)和置入(emplace_back)的内存性能情况,深入了解C++的内部机制。考虑下面代码:vector<string> vs;vs.push_back("abcd");push_back的两个版本:void push_back(const T& x);//左值void push_back(T&& x);//右值vs是原创 2021-04-15 13:51:20 · 1142 阅读 · 0 评论 -
C++ Pimpl习惯用法
Pimpl习惯用法Pimpl(pointer to implementation):指向实现的指针。把某类的数据成员用一个指向某实现类(或结构体)的指针替代,然后把原来在主类的数据成员放到实现类中,并通过指针间接访问这些数据成员。例如:class Gadget{};//位于头文件Gadget.h中class Widget {//位于widget.h头文件中public: Widget();private: string name; vector<double> data; G原创 2021-04-13 11:14:47 · 180 阅读 · 0 评论 -
C++实现简单string类
#C++实现简单string类1、string.h#pragma once#ifndef __MYSTRING__#define __MYSTRING__#include<iostream>using namespace std;//类中带有指针必须有拷贝构造和拷贝赋值,默认的只改变指针指向,造成内存泄漏(浅拷贝)class String {public: String(const char* cstr = 0);//构造函数 String(const String&a原创 2021-03-10 15:50:18 · 220 阅读 · 0 评论 -
C++复数模板类的设计
C++复数模板类的设计1、Complex.h的设计#pragma once#ifndef __COMPLEX__#define __COMPLEX__#include<cmath>#include<iostream>#include <ostream>using namespace std;//所有成员函数带有this参数,指向调用者template<typename T>class complex {public: comp原创 2021-03-10 13:58:54 · 751 阅读 · 0 评论 -
C++常用编译警告类型和解决方法
C++常用编译警告类型和解决方法1、未使用的函数参数unused function parameter检查函数的参数在函数体内是否被使用,如果参数不需要,直接删除参数名。2、未使用的变量Variable defined but never used检查某个变量是否需要被引用,若不需要则可以通过插入一个变量本身的求值表达式解决。void Fun(){ int a; a;//消除警告}3、变量使用前未初始化Variable may be used without being ini原创 2021-03-04 16:54:29 · 2006 阅读 · 1 评论