结束了第一个hello world程序后,我们来用面向过程和面向对象两个方法来求解圆的面积这个问题,以能够更清晰的体会面向对象和面向过程。第一,面向过程计算圆的面积程序中我们看到一个标准输入流cin,之前我们接触过标准输出cout,我们来大概说一下这两个东西!仅供理解!cout是干什么的呢?cout是标准输出流,就是表示某某某输出到屏幕上,cout<<某某某,这个左移操作符在这里已经进行了重载,表示不同的意思,比如小溪的水流,这...
1、纯虚方法解决什么样的问题,为什么要设计出纯虚方法? 考虑下面的需求,基类声明了一个方法,这个方法只针对具体的子类才有意义,比如Animal的Eat()方法,调用Animal的Eat方法是没有意义的。比如Dog吃肉,Cat吃鱼,而Animal吃什么呢,没有意义。2、既然Animal调用Eat没有意义,如何禁止Animal调用Eat方法呢? 不允许实例化出来Animal对象,Animal调用没有意义,要求子类必须重写。3、virtual void Eat()=0; 使Animal成为抽象类...
最近碰到个C#应用闪退的问题,由于通讯部分调用了C++工程写的dll,下面介绍一种调试的方法。右键 启动项目,分别配置常规和和调试即可,如下图。常规中,输出目录设置为安装目录中dll对应的目录;调试中命令设置为应用程序(.exe)完整路径;调试类型为“仅限本机”。 原文:http://www.cnblogs.com/cheng2015/p/5056871.html
随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化。vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写法。(注:本文中代码为C++11的代码,需要在较新的编译器中编译运行) 假设有这样的一个vector:vector<int> valList = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };需要输出这个vector中的每个元素,原型如下:void ShowVec(const vector<int>& valList)
{
}
int main(int argc, c...
1.虚方法(Virsual Method)虚方法是继承的,一旦在基类里把某个方法声明为虚方法,在子类里就不可能再把它声明为一个非虚方法了。在基类里把所有的方法都声明为虚方法会让最终生成的可执行代码的速度变得稍微慢一些,但好处是可以一劳永逸地确保程序的行为符合你的预期。析构器都是虚方法!从编译的角度看,他们只是普通的方法。如果他们不是虚方法,编译器就会根据他们在编译时的类型而调用那个在基类里定义的版本(构造器),那...
vector容器类型
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。
vector的构造
函数原型:
template<typename T>
explicit vector(); // 默认构造函数,vector对象为空
explicit vector(size_type n, const T& v = T()); // 创建有n个元素的vector对象
vector(const vector& x);
...
多字节转宽字节 1 #include<Windows.h>2 3 wchar_t* MultiCharToWideChar(char* str)4{5 auto len = MultiByteToWideChar(CP_ACP, 0, str, strlen(str), NULL, 0);6 wchar_t *buffer = new wchar_t[len + 1];7 MultiByteToWideChar(CP_ACP, 0, str, strlen(str), buffer, len);8 buffer[len] = ‘\0‘;9return buffer;
10 } 宽字节转多字节 1 #include<Windows.h>2 3char* WideCharToMultiChar(TCHAR* str)4{5 ...
好久没用过C++,本来就不太熟悉,今天突然写到一个类,需要在类中定义一个常量,居然花了很长时间。刚开始写了static const int num = 100;这样是不行的,因为常量只能在初始化列表中初始化,如果去掉const的话,又不能有“常量”的效果,在类外用宏定义看起来不科学,类外const也一样,后面就大概搜索了一下,可以选择用枚举类型来替代达到差不多的效果。具体的代码看下面:class User{
public:enum { MaxNum = 20};
}写下来记录...
http://www.cppblog.com/zhenglinbo/archive/2012/09/18/191170.html参考:http://www.cppblog.com/zhenglinbo/archive/2012/09/18/191170.html当然是使用c++中的STL 的queue啦.下面简要介绍一下使用方法. 1 准备工作 头文件 #include<queue> 2
声明和定义的方法.STL的队列是泛型模板,支持任何内置和构造类型.
比如对于刚才那个牛奶问题.我把状态存入队列的话,我首先定义一个包含3个瓶子状态的结构. struct sta {int a,b,c;}; ...
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。istringstream类用于执行C++风格的串流输入操作。ostringstream类用于执行C++风格的串流输出操作。stringstream类同时可以支持C++风格的串流的输入输出操作。istringstream类是从istream和stringstreambase派生而来,ostringstream是从ostream和 stringstreambase派生而来, stringstream则是从iostream类和stringstr...
在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。 2、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。 然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。 3、添加工程引用的dll动态...
最近做了一系列的单元测试相关的工作,除了各种规范及测试框架以外,讨论比较多的就是关于代码覆盖率的产生,c/c++与其他的一些高级语言或者脚本语言相比较而言,例如 Java、.Net和php/python/perl/shell等,由于没有这些高级语言和脚本语言的反射的特性,其代码覆盖率的产生过程会稍微复杂一些。发现许多同学对C++的覆盖率如何产生在都不太清楚,这里做一个简单的介绍。一、基本使用方法在Linux上的c/c++开发一般都使用gcc/g++作为...
开发环境:visual studio 2013+win10 一:建立C++项目在vs中建立C++project(Win32 Project),需要注意的是,要勾选: Application type:Dll Additional options:Export symbols在项目头文件中放入代码:#define WAOCVDLL_API __declspec(dllexport)
// 自定义方法
EXTERN_C WAOCVDLL_API int _stdcall Fit(int width, int height, wchar_t*image, float*firstPoint, int pointsLength);
然后再cpp文件中实现该方法:WAOCVD...
用Visual C++创建WPF项目的三种主要方法The problem with using XAML from C++Because C++ doesn’t support partial class definitions, it isn’t possible to directly support XAML in VC++ projects using this mechanism. That isn’t, however, the core reason why VC++ doesn’t directly support XAML. In addition to using the x:Class attribute, you can also use the x:Subclass attribute so that the XAML gets c...
内存泄露就是new出来的东西没有delete,我们能够这样:创建动态对象的人虽然使用new来创建对象;使用此对象的人负责释放此内存块。比如:我和他人共享一个消息队列,他人将消息(new出来的对象)放到消息队列中,他不负责释放;我从消息队列里取消息,我一旦从消息队列里取出一个消息,消息队列里就不再有这个消息,消息的控制权和全部权都在我手上,我在用完之后就应该delete。这样就保证了代码编写的简单话,仅仅要大家都尊周这个...