code主题c++主题 vs
2018-01-20 08:20:25 qq_33353186 阅读数 1178

经常用eclipse打Java的朋友们应该对eclipse的深色主题有很深的印象。其配色合理,十分醒目而且恰到好处。该VS主题正是仿照了eclipse的深色主题方案,让大家在用VS的时候能感到十分亲切,同时提高开发效率。


下载链接:

http://download.csdn.net/download/qq_33353186/10215093

配置时,点击“工具”->“导入和导出设置”,然后导入该配置文件即可。

2007-04-11 09:43:00 Xscarlet 阅读数 824

 C++主题——转型

C++ Style Cast的优势:
1.那么长,又那么怪,容易被发现出来;
2.错误容易被编译器找到,他们的功能比较明确。

四种转型操作的职能:

1.const_cast
        只允许添加或移除表达式或类型的const、volatile修饰符。它将告诉编译器,它所进行的操作仅仅是与const相关操作的添加或移除。当代码在以后改变的时候,它会在编译器跳出来报告问题,而C Style Cast仍然当成没事人似的继续工作。

2.static_cast
        用于相对可跨平台的转型操作,如类层次中,基类的指针或者引用,向下转型成为派生类的指针或引用。

3.reinterpret_cast
        从bit的角度来看待一个对象,从而允许将一个对象看作是另一个对象,如int 到double,int*到char*等。
        它不具备可移植性,因为将一个对象转换程另一个对象的操作并非只是让编译器对那块内存的解析方法不同,那是根据平台的特性而决定的。

4.dynamic_cast
        也是在集成体系下的转型,但是不同与static转型,它是对多态类型的向下转型操作,它所操作的类型,必须是含有虚函数的类型的指针
        它执行runtime的检查操作,来判定转型的正确性,所以它比较耗费资源,如果转型失败,那么将抛出一个异常,std::bad_cast,可以利用这个异常的性质进行“能力查询”。

注意:
        对于应用程序框架,常常有在子虚函数中调用父类虚函数的情况,这时不应该用转型操作符,因为这时,static_cast<base>(*this).virtual_function();它所调用的是base的虚函数,但是不是this本身,而是this的一个copy,这样不能达到子类调用父类的目的,这样做是可以的:base::virtual_function();
        应该尽量避免转型~

2007-04-18 19:01:00 Xscarlet 阅读数 2459

C++主题——Prototype原型模式

        记得段誉初识乔峰时,在酒家里对店小二说,给我来和他一样的饭菜。于是结识了这样一个惊天动地的英雄。我们在现实生活中经常会遇到拿不定主意的情况,也经常会说,“给我来和他一样的。。。”

        在用C++进行编程的时候,其实也经常遇见这样的情况,细想一下这应该是拷贝构造函数的类似功能,但是又不是拷贝构造函数所能做到的, 因为他是他,我是我,这个一样的。。。适合他,因为那是他的对象,而不是我自己的,但是,我们至少可以用他的对象构造出我们自己的对象。一种类似拷贝构造函数的思考方式,一种构造函数的结果,总之不必多想,也不必担心如果他加了什么东西,你会不知道,不用写老长一串switch-case语句判断,不会被别人笑笨拙,呵呵,何乐而不为?       

class Meal
{
public:
      
virtual ~Meal();
      
virtual Meal* clone() = 0;
}

class WineANDMeat : public Meal
{
public:
       WineANDMeat (
const WineANDMeat & );
       WineANDMeat 
* clone()
       {
              
return new WineANDMeat (*this);
       }
}

Meal 
* qiaofengMeal = CallMeal();
Meal 
* duanyuMeal = qiaofengMeal->clone();

        今天中午懒得跑去食堂,就去买盒饭,和龙哥他们一起凑合一顿,你吃的啥?给我也来一份。:-)

        突然好想念原来的朋友们,你们还好么?张建、美女、葛利鹏、婵媛。。。你们都还好么?

        等待我生命中的乔峰。。。

2018-06-08 16:35:44 SUSU0203 阅读数 260

Variadic Templates(since C++11)

数量不定的模板参数

    我们之前所见的模板参数都是确定的有限个,其实从C++11开始,也允许模板参数不确定。

#include<iostream>
#include<bitset>

using std::cout;
using std::endl;
using std::bitset;

void print() //参数个数为0时
{
	
}

template<typename T, typename... Types>
void print(const T& firstArg, const Types&... args) //将参数分为一个和一包
{
  cout << firstArg << endl; //打印第一个参数
  print(args...); //递归操作
}

int main()
{
  print(7.5, "hello", bitset<16>(377), 42);
  return 0;
}
    如果想知道那一包参数的个数,可以用sizeof...(args);语句。...就是一个所谓的pack(包),用于template parameters,就是template parameters pack(模板参数包);用于function parameter types,就是function parameter types pack(函数参数类型包);用于function parameter,就是function parameter pack(函数参数包)。

2012-07-25 10:54:07 bellusvita 阅读数 560

C++主题——Prototype原型模式

        记得段誉初识乔峰时,在酒家里对店小二说,给我来和他一样的饭菜。于是结识了这样一个惊天动地的英雄。我们在现实生活中经常会遇到拿不定主意的情况,也经常会说,“给我来和他一样的。。。”

        在用C++进行编程的时候,其实也经常遇见这样的情况,细想一下这应该是拷贝构造函数的类似功能,但是又不是拷贝构造函数所能做到的, 因为他是他,我是我,这个一样的。。。适合他,因为那是他的对象,而不是我自己的,但是,我们至少可以用他的对象构造出我们自己的对象。一种类似拷贝构造函数的思考方式,一种构造函数的结果,总之不必多想,也不必担心如果他加了什么东西,你会不知道,不用写老长一串switch-case语句判断,不会被别人笑笨拙,呵呵,何乐而不为?       

class Meal
{
public:
      
virtual ~Meal();
      
virtual Meal* clone() = 0;
}

class WineANDMeat : public Meal
{
public:
       WineANDMeat (
const WineANDMeat & );
       WineANDMeat 
* clone()
       {
              
return new WineANDMeat (*this);
       }
}

Meal 
* qiaofengMeal = CallMeal();
Meal 
* duanyuMeal = qiaofengMeal->clone();

C++主题——转换函数

阅读数 516

C++主题——转换函数 转换函数的基本规则:       转换函数只能是成员函数,无返回值,空参数。       不能定义到void的转换,也不允许转换成数组或者函数类型。       转换常定义为const形式,原因是它并不改变数据成员的值。转换函数所引出的问题:       转换操作符过于强大,它可以定义到一种内置类型的转换,然而这种内置类型本身是可能继

博文 来自: u010002704

C++主题——const

阅读数 936

C++主题——const专题一、常量       #definePI3.1415926       constdoublePI=3.1415926        用const修饰保证会对他进行类型识别等必要的编译器内部操作,比宏定义更合理, 但要注意,声明时必须初始化,特别是在类类型中,要记得在初始化列表中初始化。(详见effectiveC++)二、与指针联系      

博文 来自: Xscarlet

C++主题——策略模式

阅读数 4258

C++主题——策略模式      与模板方法模式类似,策略模式也是对一些算法的调度,只不过这些算法是同类型算法,而不像模板方法模式那样是一些不同类型算法的一种顺序上的调度。模板方法像是围棋中的布局阶段,策略模式更像是接下来的实战。针对不同的事情应用不同的策略完成相同的结果,这是策略。       模板方法模式定义了一个算法的骨架,把实现交给派生类具体实现,用户不必知道怎么实现,因为他已

博文 来自: Xscarlet

C++主题——转换函数

阅读数 3858

C++主题——转换函数 转换函数的基本规则:       转换函数只能是成员函数,无返回值,空参数。       不能定义到void的转换,也不允许转换成数组或者函数类型。       转换常定义为const形式,原因是它并不改变数据成员的值。转换函数所引出的问题:       转换操作符过于强大,它可以定义到一种内置类型的转换,然而这种内置类型本身是可能继续转换成其他的内置类型的

博文 来自: Xscarlet

C++主题——转换函数

阅读数 300

C++主题——转换函数分类:2007-04-1316:01 1158人阅读 评论(0) 收藏 举报c++integer编译器classstringfloatC++主题——转换函数 转换函数的基本规则:       转换函数只能是成员函数,无返回值,空参数。       不能定义到void的转换,也不允许转换成数组或者函数类型。       转

博文 来自: u013309802
没有更多推荐了,返回首页