implicit 关键字用于声明隐式的用户定义类型转换运算符。 如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。参考戳此explicit 关键字用于声明必须使用强制转换来调用的用户定义的类型转换运算符。参考戳此有一点要注意的是,一个类中不能同时写显式和...
分类:
其他好文 时间:
2014-07-23 15:36:49
阅读次数:
220
在类型转换时常会遇到隐式转换和显式转换。那我们自定义的类型要如何去定义隐式转换和显式转换?我们来看一段代码
public class Rational
{
private Int32 _inner_int = 0;
public Rational()
{
}
public Rational(Int32...
分类:
其他好文 时间:
2014-07-23 13:24:56
阅读次数:
177
我们知道对于class和struct都可以定义构造函数,而构造函数又有实例构造函数和静态构造函数。实例构造函数在每次实例化时,都会执行一次。那静态构造函数是否如此呢?我们先来看一段代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Thread...
分类:
其他好文 时间:
2014-07-23 13:20:16
阅读次数:
198
面向对象编程概述
继承(Inheritance)
class Quote
{
public:
Quote(){cout<<"Quote的构造函数!"<<endl;}
string isbn() const {cout<<"Quote的isbn()调用!"<<endl; string s="Quote,isbn"; return s;}
virtual double ...
分类:
编程语言 时间:
2014-07-23 13:18:16
阅读次数:
314
这是因为在编写程序时,声明了析构函数,但是没有定义析构函数。你的 CClientSocket 类所在文件包括(.h 和 .cpp)文件没有包含进工程中,就是没有生产相应的.obj文件供连接器进行连接。
解决方案:(1)注释析构函数(2)定义析构函数。
我的解决方法是,在vs对应的include目录和source目录,分别右键Add-> 现有项,选择对应的“GLES-Render.h”文件和“G...
分类:
其他好文 时间:
2014-07-23 00:13:38
阅读次数:
210
#ifndef QUEUE_HPP
#define QUEUE_HPP
#include
#include
template class Queue;
template
class Node{
friend class Queue;
public:
Node(T data = 0, Node *next = NULL)
:data...
分类:
其他好文 时间:
2014-07-23 00:05:17
阅读次数:
338
某天写一个用特定数据类型才能构造的类,就习惯性的声明了一个默认的构造函数,并声明为了private,避免勿调用默认的构造函数去声明这个类。但是却收到领导的一封邮件,建议用explicit去申明就行了,不建议用private.处于懒惰的习惯,我回了一个ok,今天无意中看到邮件了,发现不对,靠还是用代码...
分类:
其他好文 时间:
2014-07-22 23:05:32
阅读次数:
188
在使用C++时,常常会好奇或者抱怨,编译器为我们做了什么事呢? 为什么构造函数没有为我初始化呢?为什么我还要写默认构造函数呢?2.1 Default Constructor 的构造操作如果没有声明默认构造函数,编译器会在需要的时候帮我们产生出来。 为了避免在多个地方被需要导致重复,则编译器将产生的构...
分类:
编程语言 时间:
2014-07-22 22:40:34
阅读次数:
307
《C++ Primer Plus》学习笔记8
第13章 类继承
主要内容:
①is-a关系继承
②如何以公有的方式从一个类派生到另一个类
③保护访问
④构造函数成员初始化列表
⑤向上和向下强制转化
⑥虚拟成员函数
⑦早期(静态)联编和晚期(动态)联编
⑧抽象基类
⑨纯虚函数
⑩何时以及如何使用公有继承
1、一个简单的基类
从一个类派生出另一个类时候,原始类称...
分类:
编程语言 时间:
2014-07-22 22:39:14
阅读次数:
246
避免含糊转换
参数匹配和相互转换
struct B;
struct A
{
A()=default;
A(const B&) //吧B负责给A,拷贝构造函数
{//嘿,这里我有点明白了,只要 后面调用了这个函数,那么这个函数就得有定义
//不能只声明不定义
cout<<"调用了A(const B&)转换!"<<endl;
}...
分类:
编程语言 时间:
2014-07-22 14:43:26
阅读次数:
297