【《Effective C++》笔记:II】教程文章相关的互联网学习教程文章

C++多态的实现和原理【图】

一、多态的实现1. 在编译期间实现多态多态是指在不同的条件下表现出不同的状态,C++中通过重载函数的方法,可以在编译期间实现多态。(静态多态)在编译期间,编译器会根据参数列表的不同寻找合适的函数。2. 使用虚函数实现多态通过继承重写基类的虚函数实现多态,运行时在虚函数表中寻找调用函数的地址。(动态多态)在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时会根据对象的实际类型来调用相应的函数。如果对...

x86 Android游戏开发专题篇之使用google breakpad捕捉c++崩溃(以cocos2dx为例)【图】

最近一直都在x86设备上进行游戏开发,就c++层和Android java层倒没有什么要特别注意的(除了需要注意一下修改Application.mk指定平台外),在c++崩溃的时候,很多时候看不到堆栈,只能看到一个信号,所以由于工作需要,使用google breakpad来进行异常捕捉。谷歌被墙很麻烦,索性就把breakpad打包放这里供需要的童鞋下载,google breakpad下载。1.下载google breakpad下载地址是 http://code.google.com/p/google-breakpad/source/...

C++单例模式【图】

单例模式:只能创建出一个对象的类1、饿汉单例模式2、饱汉单例模式 原文:https://www.cnblogs.com/hjt1806/p/9445497.html

C++ 内存分析-valgrind

valgrind包括了以下几个比较重要的模块:memcheck, cachegrind, callgrind, helgrind, drd, massif, dhat, sgcheck, bbv. 还有一些小工具,但不是每个人都能用上,比如Lackey, Nulgrind.在linux系统下下载源程序之后,通过./configure, make, make install命令安装在系统中。用法: $valgrind [valgrind-options] your-prog [your-prog-options]The most important option is --tool which dicates which valgrind tool to run....

String类(C++练习二)【代码】

字符串类(String),熟悉内存管理与拷贝控制类定义#include <iostream> //#include <cstring>using std::cout; using std::cin;class String{using iterator = char *;friend std::ostream &operator<< (std::ostream &, const String &);friend std::istream &operator>> (std::istream &, String &);friend String operator + (const String &, const String &);friend String operator + (const String &, constchar *); ...

c++从键盘接受字符串简单

学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准string类型第二小节就是“用getline读取整行文本”。书上给的程序如下: int main() { string line: while(getline(cin,line)) cout<<line<<endl; return 0; } 大家会发现运行时怎么也跳不出循环,甚至会发生各种莫名其妙的错误。这是为什么呢?在这里我给大家做一个详细的讲解。 首先给大家介绍一下getline()函数(个人觉得百度百科给的果断...

C++ 四种类型转换

在写代码中经常会有很多的隐式类型转换或显式类型转换。对于隐式的类型转换主要是放生在赋值的时候,讲变量赋值给不同类型的变量的时候就会发生类型转换,如果是宽化转换(即从占字节少的类型向占字节多的类型转换),这个时候是不会出现丢失数据的。如果是窄化转换(从占字节多的类型向占字节少的类型转换),这个时候就很有可能会出现丢失数据,或者数据错误(如从有符号向无符号转换,就可能会出现各种无法想象的问题)。。。所...

第9课 函数重载分析(下)与C、C++相互调用【代码】【图】

重载与指针下面的函数指针将保存哪个函数的地址: 在给p赋值的时候,我们使用了func,但是这里并没有指明参数,编译器是怎么知道这个func函数指的是第一个func函数呢?函数重载遇上指针:  将重载函数名赋值给函数指针时    1、根据重载规则挑选与函数指针参数列表一致的候选者    2、严格匹配候选者的函数类型与函数指针的函数类型 测试程序如下: 1 #include <stdio.h>2 #include <string.h>3 4int func(int x)5{6retu...

c++11之三: sizeof运算符 auto的优势 __func__预定义标识符

在C++11中,对非静态成员变量使用sizeof操作是合法的。auto推导的一个最大优势就是在拥有初始化表达式的复杂类型变量声明时简化代码。如:std:vector<std::string>::iterator i = vs.begin(); 可改成 auto i = vs.begin();auto的第二个优势在于可以免除在一些类型声明时的麻烦,或者避免一些类型声明时的错误。__func__预定义标识符基本功能就是返回所在函数的名字,在c++11中,标准甚至允许其使用在类或者结构体中。原文:http://...

c++ int string互转【代码】

1.if(i<9){monthNumber = "0";itoa(i+1,iCharArray,10);monthNumber += iCharArray;} else {itoa(i+1,iCharArray,10);monthNumber = iCharArray;} 2.int转stringint n = 0;std::stringstream ss;std::string str;ss<<n;ss>>str;string转intstd::string str = "123";int n = atoi(str.c_str());#include "stdafx.h"#include <string> #include <sstream>usingnamespace std; void main() {// int 转 string stringstream ss;i...

kafka c++客户端编译【代码】

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也...

C++ 实现校验和计算(无取反步骤)【代码】【图】

题目编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。要求: 1. 以命令行形式运行:check_sum infile。其中check_sum为程序名,infile为输入数据文件名。 2. 输出:数据文件的效验和附:效验和(checksum) - 原理:把要发送的数据看成16比特的二进制整数序列,并计算他们的和。若数据字节长度为奇数,则在数据尾部...

C++学习(三)入门篇——函数【代码】【图】

C++函数分两种:有返回值的和没返回值的1.有返回值的函数 调用函数流程如图,sqrt(6.25)为函数调用,被调用的函数叫做被调用函数,包含函数调用的函数叫做调用函数。参数是发送给函数的信息,返回值是从函数中发送回去的值。在使用函数之前,C++编译器必须知道函数的参数类型和返回值类型。如果缺少,编译器将不知道如何解释返回值。C++程序应为程序中使用的每个函数提供原型sqrt()的函数原型...

【转载】C++——CString用法大全

CString常用方法简介 作者:webmaster 出处:无 CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" );CString s2( "abd" );ASSERT( s1.Compare( s2 ) == -1 );ASSERT( s1.Compare( "abe" ) == -1 ); CString::CompareNoCaseint CompareNoCase( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 ...

c++ heap学习【代码】

heap并不属于STL容器组件,它分为 max heap 和min heap,在缺省情况下,max-heap是优先队列(priority queue)的底层实现机制。而这个实现机制中的max-heap实际上是以一个vector表现的完全二叉树(complete binary tree)。二叉堆(binary heap)就是i一种完全二叉树。也即是。整棵二叉树除了最底层的叶节点以外,都是填满的,而最低层的叶子结点必须是从左到右不留空隙。至于max-heap和min-heap,前者的任何一个父亲结点都必须大于...