C/C++
文章平均质量分 59
C/C++
HenryTien
爱编程、爱科技、爱生活、爱自己
展开
-
Singleton 创建
#include<stdio.h> #include<iostream>using std::cout;using std::endl;// 在内存中,通过该对象只能创建唯一的对象// 1.该对象不能是栈对象// 2.该对象 只能是堆对象class Singleton{public: static Singleton * GetInstance(){ if(NULL==_P原创 2017-02-05 09:17:17 · 198 阅读 · 0 评论 -
构造函数或者析构函数中调用虚函数会怎么样?
简要结论: 1. 从语法上讲,调用完全没有问题。 2. 但是从效果上看,往往不能达到需要的目的。 Effective 的解释是: 派生类对象构造期间进入基类的构造函数时,对象类型变成了基类类型,而不是派生类类型。 同样,进入基类析构函数时,对象也是基类类型。所以,虚函数始终仅仅调用基类的虚函数(如果是基类调用虚函数),不能达到多态的效果,所以放在构造函数中...原创 2018-04-24 15:05:12 · 7128 阅读 · 0 评论 -
c++ new 和 malloc 的区别
new分配内存按照数据类型进行分配,malloc分配内存按照大小分配; new不仅分配一段内存,而且会调用构造函数,但是malloc则不会。new的实现原理?但是还需要注意的是,之前看到过一个题说int* p = new int与int* p = new int()的区别,因为int属于C++内置对象,不会默认初始化,必须显示调用默认构造函数,但是对于自定义对象都会默认调用构造函数初始化。...原创 2018-04-24 06:59:31 · 281 阅读 · 0 评论 -
C++中虚函数表解析 很清晰
一、 什么是虚函数? C++ 虚函数表解析C++中的虚函数的作用?虚函数表安全性C++中的虚函数的作用? C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现...转载 2018-04-22 15:09:45 · 185 阅读 · 0 评论 -
C++中Static作用和使用方法
C++中Static作用和使用方法C++中Static作用和使用方法 static作为编程语言里面一种重要的数据类型,它的地位在面试的过程里也是相当的高。为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如...原创 2018-04-22 10:52:54 · 388 阅读 · 0 评论 -
function pointer reinterpret_cast
htonl, htons, ntohl, ntohs - convert values between host and network byte order#include <arpa/inet.h>uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t netl原创 2017-08-21 17:10:05 · 313 阅读 · 0 评论 -
C++的博客整理
2015-03-30: const加载定义的函数后面—— 常成员函数可以理解为是一个“只读”函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用const成员函数 1.const int &x和int const &x有何区别? const int x=1; int const x=1; 还有 const int &y=x; int const &y原创 2017-01-16 20:50:20 · 299 阅读 · 0 评论 -
C++学习笔记
2016年12月27日 2.4.3 用户定义函数// ourfun.cpp -- define your own function#include<iostream>void simon(int); // function protype for simon()int main(){ using namespace std; simon(4); // call the原创 2017-01-13 08:55:00 · 324 阅读 · 0 评论 -
C++ 复制构造函数
、、待补充#include<iostream> using std::cout;using std::endl;class Point{public: // constructor Point(int ix,int iy) :_Ix(ix) ,_Iy(iy){ cout<<"Point"<<endl; } // copy con原创 2017-02-04 09:43:44 · 223 阅读 · 0 评论 -
C++ 序列式容器的插入和删除
#include #include #include #include using namespace std;int main() { //vector::iterator it; //vector obV(4, 1); list::iterator it; list obV(3, 2); //deque::iterator it; //deque obV(4, 3原创 2017-03-03 10:44:46 · 372 阅读 · 0 评论 -
c++ 序列式容器的创建和访问
#include #include #include#include using namespace std;#define UNIT unsigned int;int main() { // create empty vector vector obv; cout << "obv size" << obv.size() << endl; // create deque原创 2017-03-03 09:35:53 · 304 阅读 · 0 评论 -
C++ virtual function
没有使用virtual的情况:#include using namespace std;class Parent {public: void show() { cout << "I'm parent" << endl; }};class child :public Parent {public: void show() {原创 2017-03-02 09:06:22 · 311 阅读 · 0 评论 -
C++下标运算符 []
#include #include #include using std::cout;using std::endl;using std::string;class CharArr {public: CharArr(int size) :_len(size) ,_pstr(new char[_len]){ } ~CharArr() {原创 2017-03-02 09:00:21 · 2579 阅读 · 0 评论 -
c++ shared_ptr 智能指针循环引用问题
智能指针的循环引用shared_ptr and weak_ptr differences“循环引用”简单来说就是:两个对象互相使用一个shared_ptr成员变量指向对方的会造成循环引用。导致引用计数失效。下面给段代码来说明循环引用:#include<iostream>#include <memory>using namespace std;class...原创 2018-05-11 08:56:02 · 1491 阅读 · 0 评论