zoukankan      html  css  js  c++  java
  • c++的class声明及相比java的更合理之处

    或许是基于一直以来c/c++头文件声明和cXX实现物理上置于独立文件的考虑,c++中的OO在现实中基本上也是按照声明和实现分离的方式进行管理和编译,如下所示:

    Base.h

    #pragma once
    class Base
    {
    public:
        int i; //仅为了测试方便
        Base(void);
        ~Base(void);
        virtual void testDynCast();
    };

    Base.cpp

    #include "stdafx.h"
    #include "Base.h"
    #include <iostream>
    using namespace std;
    Base::Base(void)
    {
    }
    
    
    Base::~Base(void)
    {
    }
    
    void Base::testDynCast() {
        cout << i << endl;
    }

    分发给客户的时候,我们只要提供Base.h和Base.cpp编译后的so或者a即可。如下:

    #include "Base.h"
    int _tmain(int argc, _TCHAR* argv[])
    {
        Derived derived = Derived();
        derived.i = 100;
        derived.testDynCast();
        Base* dp1 = &derived;
    }

    相较于于java的interface/class,惯例上,一般我们在interface只包含接口,不会包含pojo或者属性(虽然interface也可以包含属性,但要求必须是final的)。对于精心设计的系统而言,c++的声明、定义分离方式,对于客户而言,服务和对应的领域对象组织在一起,个人觉得使用/维护起来更加的自然,对于java,单独维护在package中,总觉得看起来有些硬凑的感觉。

  • 相关阅读:
    app版本升级的测试点
    APP测试完整测试用例设计方法
    多条件组合查询---测试用例设计
    上传文件和导出的测试用例设计
    需求评审时,测试应该做什么?
    什么是PRD?
    什么是测试计划?
    由谁来编写测试计划?
    测试计划模板
    无法预览图片
  • 原文地址:https://www.cnblogs.com/zhjh256/p/6361491.html
Copyright © 2011-2022 走看看