declaration

在cpp文件中声明一个转发的类定义,有什么用?

在 .cpp 文件中转发类定义有什么意义? 想象一下,我在另一个公共课程中拥有一个私人课程。我转发私有类的定义,比如Private类。 将我的私有类的声明放在 .cpp 文件中是否有任何好处,或者我应该坚持在我的 public class.h 中使用我的前向声明并将我的 privateClass.h 包含在 cpp 文件中?... »

c++

枚举声明中的 C++ 变量声明

我有以下代码: #include <iostream> using namespace std; enum Week_Day {SAT, SUN, MON, TUE, WED, THU, FRI} wd1 = FRI; Week_Day wd2 = SAT; int main() { cout << "\n " << wd1; cout ... »

c++

在C中制作二维数组的最佳方法是什么

我想在 C 中创建一个二维数组。 我知道一种方法可以做到这一点。 #include <stdlib.h> void my_func(int **arr) { printf("test2: %d\n", arr[0][1]); } int main(void) { const int row = 3; const in... »

c

在 Java 中赋值后的内存分配

我想知道在变量声明和赋值的简单情况下如何分配内存。假设我们有以下内容: int a; 据我所知,一旦我们 daclare int a; 分配了 4 个字节; .但是,当我们为 a 赋值时,内存是如何工作的呢?我想以下之间在内存方面存在差异: a = 1; a = 1000000; 所以,实际上,问题是赋值如何影响内存。 ... »

转发定义和命名空间使用

我想知道 header 文件中以下代码行的含义... 首先我有标准的using,它使命名空间中的类对我的代码可见 using mynamespace::myclass; 然后是同一个类的前向声明: namespace mynamespace { class myclass; } 最后是另一个类的前向声明: class myclass2; 程序员在“使用”和“前向声明”时... »

c++

在 C++ 中解决涉及状态机的前向声明问题

我最近在中断后回到 C++ 开发,并且有一个关于 状态设计模式的实现。我正在使用香草模式,完全一样 根据 GoF 的书。 我的问题是状态机本身是基于一些用作 嵌入式系统 - 因此设计是固定的,无法更改。这导致一个 两个状态之间的循环依赖(特别是),我正在尝试 解决这个问题。这是简化的代码(请注意,我尝试通过使用来解决此问题 像往常一样的标题但仍然有问题 - 我在这段代码中省略了它们 sn-p):... »

c++

C 函数声明的顺序

这是一个示例代码,类似于我遇到的问题 #include <stdio.h> int cube_then_square(int x){ x = cube(x); return x*x; } int cube(int y){ return y*y*y; } int main(int ar... »

c

转发“Typedefing”一个结构

我的包含文件有一点问题,我对我的问题做了一个简化的模型。 假设我正在编译一些需要名为的头文件的源 header.h 里面有什么: #ifndef HEADER_INCLUDED #define HEADER_INCLUDED #include element.h typedef struct { Element *list; } Thing; #endif 然后我有另一个头... »

c

Java 在变量定义之外声明数组

我正在寻找一种在 java 数组的声明之外直接为数组赋值的方法,例如 /*this works*/ int a[] = {1,2,3}; /*this doesn't*/ a = {1,2,3}; 动机是这样使用以数组作为参数的方法 public void f(int a[]) { /*do stuff*/ } f({1,2,3}); 而不是 int a[] = {1,2,3}... »

php:推送到可能存在或不存在的数组

我想创建一个包含消息的数组。 $myArray = array('my message'); 但使用此代码,myArray 将被覆盖,如果它已经存在。 如果我使用array_push,它必须已经存在。 $myArray = array(); // <-- has to be declared first. array_push($myArray, 'my message'); ... »

php

在类中声明数组并在构造函数中初始化

我有以下问题: 我在头文件中有一个类,我想在其中声明一个二维数组(映射)。 那我想在Source-File(cpp)文件的Constructor中初始化它。 到目前为止,它看起来像这样: 头文件: class TForm1 : public TForm { private: ... public: __fastcall TForm1(TComponent* Owner);... »

c++

c ++:使用声明中的逗号分隔列表

为什么在 c++ 的 using 声明语句中使用逗号分隔列表是一种不好的做法? 例如 using std::cout; using std::cin; using std::endl; 被认为是比更好的代码 using std::cout,std::cin,std::endl; 如果代码包含逗号分隔的 using 声明列表,一些编译器(例如 gcc)甚至会发出警告。 当然,最好的... »

c++

C ++中的变量声明[重复]

最近我在 C++ 中看到了一段相当古老的代码,其中使用了 int var(12) 而不是 int var=12。为什么它有效?我应该避免写这种风格的声明吗?... »

c++

C ++继承重载具有不同参数的函数[重复]

我正在开发一个使用类继承并且在基类和派生类中都需要大量重载的项目,我已经简化了代码,但我不想不必要地复制和粘贴,因为这应该是继承是为了。 #include <iostream> class Base { public: Base() = default; //base const char* overload void foo(const char* me... »

c++

在实例化 as 类的上下文中定义约束

我想知道是否有一种方法可以定义一个类,它的实例永远不会是另一个类的成员(只有局部变量),或者反过来——只有成员但永远不会是本地的。 有什么方法可以让一个类决定其预期实例的范围? ... »

php中的隐式类变量声明?

我一直在查看一些代码,并且很难在 php 类中进行变量声明。具体来说,我正在查看的代码似乎没有在使用类变量之前声明它们。现在这可能是意料之中的,但我找不到任何表明这是可能的信息。所以你会期待吗: class Example { public function __construct() { $this->data = array(); $t... »

php

在使用它之前声明一个函数,它有什么不同吗?

这两个函数体代码有什么区别? (第一个代码来自 The C Programming Language 书) 声明函数并使用它与直接使用它而不先声明它有什么区别? int atoi(char s[]) { double atof(char s[]); return (int) atof(s); } int atoi(char s[]) { return (int) at... »

c

C中允许重新声明全局变量?

为什么在 C 中允许使用此代码? int x; int main() { printf("%d\n", x); return 0; } int x = 2; 使用-Wall -std=c89 和gcc 和clang 编译时不会出现警告。 我之前认为int x在全局范围内等价于int x = 0。我发现自己很惊讶。 ... »

c