C++
文章平均质量分 69
墨非_Coder
困难即契机
展开
-
函数名后面加上const的作用
在C++中,非静态成员函数的函数名后面可以加上const关键字(静态函数和非成员函数都不能加,加上后编译会出错),加上后该函数隐式传入的this指针将const指针。例如执行下面的代码:#include#include#includeusing namespace std;class Sale_Date{public : void isbn() { cout << ty原创 2017-10-08 17:54:05 · 3206 阅读 · 1 评论 -
C++笔记之移动构造函数何时会被调用,何时不会被调用
下面这段文字是C++ primer中的一段文字:为了理解他,我们来看这样一段代码:Test.h 文件:#pragma once#include#includeusing namespace std;class Test{public: Test(const string& s = "hello world") :str(new string(s)) { cou原创 2018-01-14 17:00:03 · 11153 阅读 · 5 评论 -
C++笔记之为什么一个类定义了析构函数就几乎肯定要定义拷贝构造函数和拷贝赋值运算符
这个问题本来很简单,但是时间久了就容易忘,所以做个笔记用来提示下自己先来看看这样一个类:class HasPtr{public: HasPtr(const string& s = string()) :ps(new string(s)), i(0) {} ~HasPtr() { delete ps; }private: string * ps; int i;原创 2018-01-09 10:06:45 · 1594 阅读 · 1 评论 -
C++笔记之头文件中直接定义函数报错与否
首先来说一下问题:我想直接在.h内定义函数并且在main.cpp里面调用,但是出现了问题,代码如下。.h文件代码:#pragma once#includevoid Conbine(int a, int b){ std::cout << a + b << std::endl;}.cpp文件代码:#include"A.h"main.cpp文件代码:#include"A.h原创 2017-11-04 09:23:59 · 1987 阅读 · 0 评论 -
C++笔记之内联函数的写法
今天突发奇想,想自己写个内联函数,但是却出现了问题,代码如下.h头文件中的代码:class A{public: A() = default; inline int get();};.cpp文件中的代码:#include"A.h"int A::get(){ return 1;}main函数中的代码:int main(){ A a; cout << a.g原创 2017-10-26 20:13:18 · 789 阅读 · 0 评论 -
C++多态的实现机制
首先问一个问题:为什么C++中一定要通过指针或者引用才能实现多态,通过对象就不行?我们需要一些基础的知识。一、 虚表虚表的作用有两点:1. 存放虚函数。2. 使类的大小不会因为虚函数的个数的不同而差异化。因为类的对象中只维护一个指针,指向这个 virtual table。二、类对象的内存模型#include<iostream>using namespac...原创 2018-11-17 16:58:40 · 619 阅读 · 0 评论