相关疑难解决方法(0)

C++中的POD类型是什么?

我有几次遇到这个术语POD型.这是什么意思?

c++ types c++-faq

919
推荐指数
8
解决办法
29万
查看次数

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

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

c++ oop struct ooad class

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

带有成员函数的C++结构与具有公共变量的类

这实际上是良好形式/最佳实践的问题.我在C++中使用结构来形成基本上保存数据的对象,而不是创建一个具有大量访问器方法的类,这些方法除了获取/设置值之外什么都不做.例如:

struct Person {
    std::string name;
    DateObject dob;
    (...)
};
Run Code Online (Sandbox Code Playgroud)

如果你想象那里有20个变量,把它写成一个有私人成员和40多个访问者的类是很难管理的,对我来说似乎很浪费.

有时候,我可能还需要为数据添加某种最小功能.在示例中,假设我有时也需要基于dob的年龄:

struct Person {
    std::string name;
    DateObject dob;
    (...)
    int age() {return calculated age from dob;}
}
Run Code Online (Sandbox Code Playgroud)

当然,对于任何复杂的功能,我都会创建一个类,但对于像这样的简单功能,这是"糟糕的设计"吗?如果我使用一个类,将数据变量保存为公共类成员是不好的形式,还是只需要接受它并使用一堆访问器方法创建类?我理解类和结构之间的差异,我只是询问最佳实践.

c++ struct class

26
推荐指数
2
解决办法
5万
查看次数

当要访问的对象被多次封装时,如何正确使用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++ ×4

class ×2

struct ×2

c++-faq ×1

embedded ×1

getter ×1

misra ×1

ooad ×1

oop ×1

setter ×1

types ×1