
c++语言
-出发-
学生一个,正处于学习阶段,希望与大家多多交流
展开
-
三种继承方式
三种继承方式:公有继承,私有继承,保护继承不同继承方式的影响主要体现在:派生类成员对基类成员的访问权限派生类对象对基类成员的访问权限公有继承:基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。通过派生类的对象只能访问基类的...原创 2018-06-21 16:42:56 · 2521 阅读 · 0 评论 -
new和malloc的区别
1、属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。2、参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。3、返回类型new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换。而malloc 函数成功,返回void *...原创 2018-10-18 10:21:30 · 274 阅读 · 0 评论 -
指针与引用的区别及指针的引用
一、指针和引用的定义和性质区别:指针是一个变量,存储的是一个地址,需要分配内存空间。引用只是变量的别名,不需要分配内存空间;引用必须初始化,初始化后就不会再改变了。而指针可以是空值,可以初始化之后改变;可以有const指针,但是没有const引用;指针本身一个变量,引用不是对象,所以指针可以有多级,引用只能是一级(int **p;合法 而 int &&a是不合法的);”...原创 2018-09-27 15:17:06 · 990 阅读 · 3 评论 -
STL Vector remove()、erase()的使用与iterator使用陷阱
STL中remove()的使用STL中remove()只是将待删除元素之后的元素移动到vector的前端,而不是删除。若要真正移除,需要搭配使用erase()。#include <iostream>#include <vector>#include <algorit原创 2018-09-20 17:43:33 · 1475 阅读 · 0 评论 -
unsigned int与int相加
unsigned int与int相加的问题原来没有在这个问题上较真过,现在详细说明一下#include<iostream>using namespace std;void foo(void){ unsigned int a = 6; int b = -20; (a + b > 6) ? puts(">6") : puts("<=6");}int m...原创 2018-09-20 11:21:32 · 1462 阅读 · 0 评论 -
在函数中以数组作为形参
说明:数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别是: 不允许拷贝数组;使用数组时通常会将其转换成指针。因为不能拷贝数组,所以我们无法以值传递的方式使用数组参数。 因为数组会被转换成指针,所以当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针。尽管不能以值传递的形式传递数组,但是我们可以把形参写成类似数组的形式://尽管形式不同...原创 2018-09-18 14:54:15 · 18737 阅读 · 2 评论 -
sort函数的用法(C++排序库函数的调用)
c++标准库里的排序函数的使用方法I)Sort函数头文件#include<algorithm>II)Sort函数有三个参数:第一个是要排序的数组的起始地址。第二个是结束的地址(最后一位要排序的地址)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。Sort函数使用模板:Sort(start,en...原创 2018-08-13 19:53:20 · 4097 阅读 · 0 评论 -
c++ append用法
append函数是向string的后面追加字符或字符串。 1、向string的后面加C-string string s = “hello “; const char *c = “out here “; s.append(c); // 把c类型字符串s连接到当前字符串结尾 s = “hello out here”; 2...转载 2018-07-26 23:53:24 · 1080 阅读 · 0 评论 -
关于C++中输入输出的小结——读写文件、string
常用函数和类的介绍getline(istream& , string&) 功能:将输入流中的数据输出到string对象中,直到遇到\n。可以用于从文件或者屏幕中将一行文本接收并存储下来。常用的io类有iostream,fstream,stringstream其中使用的时候分别要包含如下头文件iostream、 fstream、sstream 具体的类的使用和介绍推...转载 2018-07-26 20:02:16 · 3017 阅读 · 0 评论 -
C++中int或double与string的相互转换
一、int转string1.c++11标准增加了全局函数std::to_string: string to_string (int val); string to_string (long val); string to_string (long long val); string to_string (unsigned val); string to_string (unsigne...原创 2018-07-26 19:44:39 · 49286 阅读 · 3 评论 -
二义性与虚基类
二义性在多继承时,基类与派生类之间,或基类之间出现同名成员时,将出现访问时的二义性(不确定性)——采用虚函数或同名隐藏规则来解决。当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性——采用虚基类来解决。class A {public: void f();};class B {public: void f(); void g();};...原创 2018-06-23 10:19:06 · 894 阅读 · 0 评论 -
类型兼容规则与同名隐藏规则
一个公有派生类的对象在使用上可以被当作基类的对象派生类的对象可以隐含转换为基类对象;派生类的对象可以初始化基类的引用;派生类的指针可以隐含转换为基类的指针;通过基类对象名、指针只能使用从基类继承的成员#include <iostream>using namespace std;class Base1 { //基类Base1定义public: void displa...原创 2018-06-22 17:57:56 · 794 阅读 · 0 评论 -
priority_queue的用法
priority_queue本质是一个堆。头文件:#include&amp;amp;lt;queue&amp;amp;gt;2. 关于priority_queue中元素的比较函数原型:priority_queue&amp;amp;lt;Type, Container, Functional&amp;amp;gt;其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。Container必须是原创 2019-02-18 15:01:55 · 591 阅读 · 0 评论