相关疑难解决方法(0)

什么时候应该在C++中使用类vs结构?

在什么情况下在C++中使用structvs a 更好class

c++ oop struct ooad class

895
推荐指数
15
解决办法
38万
查看次数

C++中struct和class之间有什么区别?

这个问题已在C#/ .Net的背景下提出.

现在我想学习C++中结构和类之间的区别.请讨论技术差异以及在OO设计中选择其中一个的原因.

我将从一个明显的区别开始:

  • 如果您没有指定public:or private:,则结构的成员默认是公共的; 默认情况下,类的成员是私有的.

我确信在C++规范的模糊角落中还有其他差异.

c++ oop struct class c++-faq

427
推荐指数
11
解决办法
34万
查看次数

我什么时候应该使用结构而不是类?

MSDN说你应该在需要轻量级对象时使用结构.当结构比类更可取时,还有其他任何情况吗?

有些人可能忘记了:

  1. 结构可以有方法.
  2. 结构不能被继承.

我理解结构和类之间的技术差异,我只是对使用结构没有很好的感觉.

.net oop

295
推荐指数
9
解决办法
7万
查看次数

7
推荐指数
2
解决办法
2412
查看次数

当要访问的对象被多次封装时,如何正确使用setter?

我经常与这个问题斗争,找不到任何明确的解决方案.我想我知道getter/setter的动机.

先前信息:

在实现真实数据时,通常将数据封装在多个层中.例如:

// 1st stage data types ------------------------------
struct Cartesian
{
    int32_t x;
    int32_t y;
    int32_t z;
}

struct GeoLocation
{
    double_t latitude;
    double_t longitude;
    int32_t altitude;
}

// 2nd stage data types ------------------------------
struct Drone
{
    Cartesian baseOffset; // m
    Cartesian velocity; // m/s
}

struct Plane
{
    GeoLocation location; // semicircle
    Cartesian velocity; // knots
}

// 3rd stage data types ------------------------------
struct Swarm
{
    Plane base;
    Drone member[10];
}
Run Code Online (Sandbox Code Playgroud)

在C++中,我使用类而不是结构(因为为什么不呢?).当Swarm[3].member[8].velocity.x通过某个通信信道接收到有关数据时,就会出现问题.意识到系统中可以有多个群.

需求:

根据MISRA C++规则,函数不能将非const引用返回给任何类成员,因为如果没有该类的权限/知识,则不应更改该成员.

题: …

c++ embedded getter setter misra

5
推荐指数
1
解决办法
204
查看次数

为什么C++同时具有类和结构?

可能重复:
C++中struct和class之间有什么区别

如果结构和类之间的唯一区别是默认访问说明符(在C++中),那么为什么C++也有类?

c++ struct class

4
推荐指数
1
解决办法
2558
查看次数

(C++)为什么boost作者在这里使用结构而不是类?

boost 属性树的文档中,有一个正确使用的示例,在此处或在包中给出 libs/property_tree/examples/debug_settings.cpp.

我想知道的是关于这struct debug_settings条线.为什么要把它作为结构而不是?它甚至有两个成员函数,load(...)save(...).我认为提升作者有充分的理由这样做,并且它与...效率有某种关系,即使结构和类在"技术上"相同?

从列出的版权年份,我可以猜测这可能是C++ 98,C++ 03或C++ 0x,因此使用结构而不是类的原因至少来自于前C++ 11观点.

// ----------------------------------------------------------------------------
// Copyright (C) 2002-2006 Marcin Kalicinski
//
// Distributed under the Boost Software License, Version 1.0. 
// (See accompanying file LICENSE_1_0.txt or copy at 
// http://www.boost.org/LICENSE_1_0.txt)
//
// For more information, see www.boost.org
// ----------------------------------------------------------------------------

//[debug_settings_includes
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
#include <boost/foreach.hpp>
#include <string>
#include <set>
#include <exception>
#include <iostream>
namespace pt = …
Run Code Online (Sandbox Code Playgroud)

c++ struct boost class data-structures

0
推荐指数
2
解决办法
312
查看次数

标签 统计

c++ ×5

class ×4

struct ×4

oop ×3

data-structures ×2

.net ×1

boost ×1

c# ×1

c++-faq ×1

embedded ×1

getter ×1

misra ×1

ooad ×1

setter ×1