Welcome 微信登录

首页 / 软件开发 / C++

c++中的重名问题

c++中的重名问题

c++中的重名问题2014-11-11看C++视频教程-范磊主讲(2.91G)视频学习笔记整理。1.c++为什么要引入名字空间(namespace)?c++引入名字空间这个概念,是为了避免重名问题,比如说避免重复的函数名或者变量名引起的冲突。2.比如:采用名字空间这样写,可以有三个名字为b的变量名,但是他们的值都是不一样的。#include<iostream>namespace a{int b=5;}namespace c{int b=8;}i...
跨越语言的障碍:C++调用C# DLL

跨越语言的障碍:C++调用C# DLL

跨越语言的障碍:C++调用C# DLL2014-11-11当C#项目需要引用C++dll的时候可以直接使用DLLIMPORT来进行调用。而反向的话,C++项目并不能简单靠引用来使用C#DLL。因为C++项目默认配置是没有公共语言运行库支持的。所以我们需要更改一些配置来进行对C# dll的调用。步骤如下:首先我们完成C# dll开发:namespace Csharp { public class Class1 { public string Name = s...
C++程序验证:一天中时针、分针和秒针三者重合谜题

C++程序验证:一天中时针、分针和秒针三者重合谜题

C++程序验证:一天中时针、分针和秒针三者重合谜题2014-11-11如果思路是计算三者重合的时间,那么会让谜题变得很复杂,具体数学分析也可以看下面网址。http://www.planetseed.com/node/18560但是这里使用简单一点的思路,思路一变,那么程序就可以写的很简单了,如下:思路:1 先解决时针和分针重合问题,如我前面一篇博客,可以看到12小时之内重合12次(算上头尾两次)。2 然后问题就转换成为在这个12次相遇的时间中,有没有一次在...
C/C++的内存泄漏检测工具Valgrind memcheck的使用经历

C/C++的内存泄漏检测工具Valgrind memcheck的使用经历

C/C++的内存泄漏检测工具Valgrind memcheck的使用经历2014-11-11Linux下的Valgrind真是利器啊(不知道Valgrind的请自觉查看参考文献(1)(2)),帮我找出了不少C++中的内存管理错误,前一阵子还在纠结为什么VS 2013下运行良好的程序到了Linux下用g++编译运行却崩溃了,给出一堆汇编代码也看不懂。久久不得解过后,想想肯定是内存方面的错误,VS在这方面一般都不检查的,就算你的程序千疮百孔,各种内存泄露、内存...
C++中替代sprintf的std::ostringstream输出流详解

C++中替代sprintf的std::ostringstream输出流详解

C++中替代sprintf的std::ostringstream输出流详解2014-11-11一、简单介绍ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中。ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓冲区,替代sprintf。派生关系图:二、ostringstream的基本使用ostringstream的构造函数形式:explicit ostringstream (...
从Google开源RE2库学习到的C++测试方案

从Google开源RE2库学习到的C++测试方案

从Google开源RE2库学习到的C++测试方案2014-11-11最近因为科研需求,一直在研究Google的开源RE2库(正则表达式识别库),库源码体积庞大,用C++写的,对于我这个以前专供Java的人来说真的是一件很痛苦的事,每天只能啃一点点。今天研究了下里面用到的测试方法,感觉挺好的,拿来跟大家分享下!(哈~C++大牛勿喷)对于我这个C++菜鸟中的菜鸟而言,平时写几个函数想要测试一般都是在main中一个一个的测试,因为没用C++写过项目,没有N多方法...
C++的表达式与语句

C++的表达式与语句

C++的表达式与语句2014-11-11表达式1,应该把函数调用当作是一种运算符,这种运算符对参与运算的对象没有数量限制。2,关于“左值(lvalue)”和“右值(rvalue)”可以做一个简单的归纳:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。更具体的左值与右值的举例:C++ priemr 5ed P1213,运算符的优先级规定了运算对象的...
C++的数据与类型

C++的数据与类型

C++的数据与类型2014-11-11一、前言最近在看C++Primer第5版,先前已经看过第4版,但是发现第5版在整个知识布局与个别知识的讲解上跟第4版差别还是挺大的,尤其是新增了C++11的内容,正如孟岩老师在第5版前言中所讲:“现在能够以新的C++11风格开发实践的人是凤毛麟角,如果能够纯熟的运用C++11的新特征、新机制,那么就能够形成一种简洁优雅的C++编程风络,开发会变得更高效,更高质”。所以正好借助第5版来重新学习巩固...
C++的静态绑定和动态绑定概述

C++的静态绑定和动态绑定概述

C++的静态绑定和动态绑定概述2014-11-11C++在面向对象编程中,存在着静态绑定和动态绑定的定义,本节即是主要讲述这两点区分。我是在一个类的继承体系中分析的,因此下面所说的对象一般就是指一个类的实例。首先我们需要明确几个名词定义:静态类型:对象在声明时采用的类型,在编译期既已确定;动态类型:通常是指一个指针或引用目前所指对象的类型,是在运行期决定的;静态绑定:绑定的是静态类型,所对应的函数或属性依赖于对象的静态类型,发生在编译期;动态绑定:绑定的是...
C++中数据对齐问题:struct、union、enum。再谈sizeof()

C++中数据对齐问题:struct、union、enum。再谈sizeof()

C++中数据对齐问题:struct、union、enum。再谈sizeof()2014-11-11首先是struct,在C++中,结构体其实和class有很大的相似了。但是有一点不同的是,struct默认是public,而class中是private.当然,struct继承等用法也是可以的。共用体的声明方式是:枚举的声明方式与共用体比较相似其中a初始化为0,后面默认增1,若已经初始化,则后面再增1,比如d=6在这里。struct长度计算大家猜一下,s1 x...
计算sizeof的值的32位C++程序

计算sizeof的值的32位C++程序

计算sizeof的值的32位C++程序2014-11-11sizeof(str) = 6; //字符串数组,大小是六个字节(加上""共六个)。sizeof(p) = 4; // 指针的内容就是一个指向目标地址的整数,所以不管指向char、int还是其他,32位机指针一律是4个字节。sizeof(n) = 4; // int型变量是4个字节。右侧:sizeof(str) = 4; // 这里的str不再是100100字节。当数组作为函数的参数进行传递时,也就...
C++:RTTI(RunTime Type Information)运行时类型信息 详解

C++:RTTI(RunTime Type Information)运行时类型信息 详解

C++:RTTI(RunTime Type Information)运行时类型信息 详解2014-11-14RTTI, RunTime Type Information, 运行时类型信息, 是多态的主要组成部分,通过运行时(runtime)确定使用的类型, 执行不同的函数,复用(reuse)接口.dynamic_cast<>可以 使基类指针转换为派生类的指针, 通过判断指针的类型, 可以决定使用的函数.typeid(), 可以判断类型信息, 判...
C++:模板函数需要类型转换时使用友元(friend)模板函数

C++:模板函数需要类型转换时使用友元(friend)模板函数

C++:模板函数需要类型转换时使用友元(friend)模板函数2014-11-14模板函数的隐式(implicit)类型转换, 涉及到模板参数(typename)的确定问题.从int或double类型, 无法隐式转换为模板类(template class)的类型, 因为无法确定模板参数类型(typename), 就无法确定构造函数的参数.所以需要使模板函数, 与模板类拥有相同的参数类型(typename), 则需要成为模板类的友元(friend).模板类的...
<< 141 142 143 144 145 146 147 148 149 150 >>