
c++
shihongyu_
天行健,君子以自强不息。
展开
-
《Effective C++》读书笔记第一章:让自己习惯c++
Accustoming Youself to C++条款1.视c++为一个语言联邦C++是个多重范型编程语言,同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式。视c++为一个语言联邦,包括以下四个部分:C. C++说到底还是以C为基础。这是面向过程的部分,C与C++相比,少了模板、异常以及重载。 Object-Oriented. 面向对象部分,包括封装、继承、多态以及虚...转载 2018-07-18 22:43:54 · 166 阅读 · 0 评论 -
const char * 、char const *、 char * const 三者的区别
const char *ptr; //定义一个指向字符常量的指针,*ptr为const型,不可变,即指针指向的内容不可以通过ptr来修改,但是可以通过别的方式来修改。char const *ptr; //同上char * const ptr; //定义一个指向字符的指针常量 : ptr为const型,不可变; *ptr可变 举例如下:const char *ptr;...原创 2018-08-17 16:39:35 · 723 阅读 · 1 评论 -
new和malloc的用法
(收集整理from web)1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构...转载 2018-08-02 20:49:51 · 1857 阅读 · 0 评论 -
在windows下使用vs2013编译和调试mysql源代码
1. 准备工作1)OS:win10 + VS20132)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi4)Cmake:cmake-3.5.0-win32-x86 .exe5)Bison:bison-2.4.1-setup.exe ...转载 2018-08-14 17:17:28 · 463 阅读 · 0 评论 -
MYSQL常用命令
-- 创建用户create user "yu"@"localhost" identified by "yu";-- 查询数据库show databases;-- 使用数据库use mysql --用户保存在mysql数据库中-- 查询表show tables;-- 查询用户select user from user;-- 修改...原创 2018-08-14 16:46:35 · 255 阅读 · 0 评论 -
用模板函数写冒泡排序
利用模板函数来写冒泡排序可以做到数据类型的多样性。例子如下:#include <iostream>#define N 5using namespace std;template <typename T>void get_num(T *a){ for(int i=0;i<N;i++) { cin>>a[i]; }}t...原创 2018-08-01 20:56:23 · 3849 阅读 · 3 评论 -
STL(Standard Template Library,标准模板库)
STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。 容器:用来管理一组元素容器分类:vector(向量)、d...原创 2018-08-05 20:11:25 · 434 阅读 · 0 评论 -
C++虚继承的意义和使用
虚继承:多个派生类保存相同基类的同名成员时,虽可以在不同的数据成员中分别存放不同的数据 ,但我们只需要相同的一份。解决了多父类重复成员只保留一份的问题。 比如现在有一个沙发床,它既有床的属性又有沙发的属性,它们都有长宽高的属性,但是我们却只需要知道它的一个状态的属性。它的一个长宽高能体现多个状态。 家具{属性:长,宽,高;} 沙发床:public 沙发,pu...转载 2018-07-31 21:25:29 · 495 阅读 · 0 评论 -
C++ 重载赋值运算符
1、C++中重载赋值操作函数应该返回什么? 类重载赋值操作符一般都是作为成员函数而存在的,那函数应该返回什么类型呢?参考内置类型的赋值操作,例如 int x,y,z; x=y=z=15; 赋值行为相当于x=(y=(z=15)),也就是赋值操作应该返回左操作数的引用,因此,为了和内置类型兼容,类中重载赋值操作符应该返回左操作数的引用,即*this,如下类A的重载赋值操作函...转载 2018-07-27 16:53:26 · 368 阅读 · 0 评论 -
虚继承
如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的名字进行访问时,可能产生二义性 如果在多条继承路径上有一个公共的基类,那么在继承路径的某处汇合点,这个公共基类就会在派生类的对象中产生多个基类子对象 要使这个公共基类在派生类中只产生一个子对象,必须对这个基类声明为虚继承,使这个基类成为虚基类。 虚继承声明使用 关键字 virtual...原创 2018-07-30 22:33:46 · 173 阅读 · 0 评论 -
抛出异常,捕获
#include <iostream>using namespace std;class Myarray{protected: int m_len; int *m_data;public: int &operator [](int index); Myarray(int l); ~Myarray(); int GetLength() { r...原创 2018-08-03 21:13:25 · 227 阅读 · 0 评论 -
类的继承中同名成员问题
当在继承类中,子类和父类包含同一个成员,这时候ying应该如何调用?代码如下:#include <iostream>using namespace std;class A{public: int m_a; int m_b;};class B:public A{public: int m_b; int m_c;};int main(){ ...原创 2018-07-28 18:21:30 · 639 阅读 · 0 评论 -
c++中重载函数的准则问题研究
以下面的例子来进行研究:#include <iostream>#include <cstdio>using namespace std;double add(double x,double y){ return x+y;}int add(int x,int y){ return x+y;}int main(){ int a=1,b=2...原创 2018-07-19 16:55:31 · 187 阅读 · 0 评论 -
深拷贝和浅拷贝的问题探究
浅拷贝的问题分析:#include <iostream>#include <string.h>using namespace std;class Name{public: Name(const char *p) { m_len=strlen(p); m_p=(char *)malloc(m_len+1); } ~Name() { co...原创 2018-07-24 21:06:00 · 238 阅读 · 0 评论 -
什么是引用?声明和使用引用时要注意哪些问题?
专业地讲,引用就是某个目标变量的别名(alias),对引用的操作就是对变量的直接操作,它们的效果是完全一样的。声明一个引用时,必须要对其初始化,将其与某个变量相关联。 引用声明完毕后,相当于目标变量有两个名称----原名和引用名,不能把引用名再做为其他变量的的别名。声明一个引用,不是新定义一个变量,他只表示该引用是目标变量的一个别名。 引用不...转载 2018-08-17 16:56:00 · 4797 阅读 · 0 评论