一,class B:A为类的继承关系,即A类是B类的基类
class <派生类名>:<继承方式><基类名>
{
<派生类新定义成员>
};

例如:

#include<iostream>

class A
{
public:
void print()
{ std::cout<<"A::print()"<<std::endl; }
}; class B:A //这里等价于class B:private A 即B继承A的方式为私有继承
{
public:
void test()
{
print();
std::cout<<"B::test()"<<std::endl;
}
}; int main()
{ B b;
b.test();
return ;
}

二、Class A::B为类的嵌套关系,即A类是B类内部的类,双冒号为作用域

如下示例为《boost程序完全开发指南》中3.4.6节中的桥接模式:

//File:TestSample.h
#include<boost/smart_ptr.hpp> class TestSample
{
private:
class TestSampleImpl;
boost::shared_ptr<TestSampleImpl> m_ptrImpl; public:
TestSample();
~TestSample(); void Display();
}; //////////////////////////////////////////
//File:TestSample.cpp
#include "TestSample.h"
#include "TestSampleImpl.h"
#include<boost/make_shared.hpp> TestSample::TestSample()
{
m_ptrImpl=boost::make_shared<TestSampleImpl>();
} TestSample::~TestSample()
{ } void TestSample::Display()
{
m_ptrImpl->Display(); } ///////////////////////////////////////////
//File:TestSampleImpl.h
#include "TestSample.h" class TestSample::TestSampleImpl
{
public:
TestSampleImpl(){}
~TestSampleImpl(){} void Display();
}; ////////////////////////////////////////
//File:TestSampleImpl.cpp
#include "TestSampleImpl.h"
#include<iostream> void TestSample::TestSampleImpl::Display()
{
std::cout<<"TestSampleImpl::Display()"<<std::endl;
} ////////////////////////////////////////
//File:main.cpp
#include"TestSample.h" int main(int argc,char *argv[])
{
TestSample inst;
inst.Display(); return ;
}

C++中关于class B:A与Class B::A问题的更多相关文章

  1. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  2. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

  3. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  4. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  5. .NET Core中的认证管理解析

    .NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...

  6. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  7. 关于CryptoJS中md5加密以及aes加密的随笔

    最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...

  8. In-Memory:在内存中创建临时表和表变量

    在Disk-Base数据库中,由于临时表和表变量的数据存储在tempdb中,如果系统频繁地创建和更新临时表和表变量,大量的IO操作集中在tempdb中,tempdb很可能成为系统性能的瓶颈.在SQL ...

  9. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  10. 【.net 深呼吸】序列化中的“引用保留”

    假设 K 类中有两个属性/字段的类型相同,并且它们引用的是同一个对象实例,在序列化的默认处理中,会为每个引用单独生成数据. 看看下面两个类. [DataContract] public class 帅 ...

随机推荐

  1. python struct模块的使用

    struct模块中的函数 函数 return explain pack(fmt,v1,v2…) string 按照给定的格式(fmt),把数据转换成字符串(字节流),并将该字符串返回. pack_in ...

  2. Redis缓存系统-Java-Jedis操作Redis,基本操作以及 实现对象保存

    源代码下载:   http://download.csdn.net/detail/jiangtao_st/7623113 1.Maven配置 <dependency> <groupI ...

  3. Gradle 下载不了

    可自行下载对应的 gradle-x.x-all.zip 放在下列目录 C:\Users\penno\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv ...

  4. 【opencv基础】OpenCV从Mat中提取某些行或列

    这两个函数返回的是指向原矩阵内部位置的指针,类似于浅拷贝: code cv::Mat align_mean(cv::Mat mean, cv::Rect facebox, float scaling_ ...

  5. CentOS下设置MySQL的root各种密码 总结

    一.更改mysql密码常用的三种方法 大部分情况下,一般用户没有权限更改密码,只有申请了权限或root用户才可以更改密码: 1.方法1:用mysqladmin mysqladmin -u root p ...

  6. cocoapods 安装过程及常见问题

    1.可以参考这个网页的教程:http://code4app.com/article/cocoapods-install-usage 2.按照以下步骤进行安装: 1.配置rugy静态环境 gem sou ...

  7. grandstack graphql 工具基本试用

      grandstack 是一个方便graphql 应用开发的工具 使用docker-compose 运行 环境准备 官方的starter 比较好,已经是使用docker-compose 创建好了所有 ...

  8. [NN] 对于BackPropagation(BP, 误差反向传播)的一些理解

    本文大量参照 David E. Rumelhart, Geoffrey E. Hinton and Ronald J. Williams, Learning representation by bac ...

  9. 什么是Map-Reduce

    Map-Reduce本身并不是算法:而是一种处理模式:因为在大数据分布式这种场景下,处理数据运算和单机版不同:需要协同多台机器,并行计算:于是有了map-reduce这种模式,map阶段是数据处理,在 ...

  10. [BZOJ5249][九省联考2018]IIIDX(线段树)

    5249: [2018多省省队联测]IIIDX Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 32  Solved: 17[Submit][Statu ...