我们可以在 C++ 中的 main 函数之后定义结构吗?

臭氧X

我们可以在 C++ 中的主程序之后定义 struct 吗?定义函数时,可以在main程序之前声明函数,然后在main函数之后写函数定义。我想知道我们在定义结构时是否可以做类似的事情。谢谢你。

埃罗里卡

我们可以在 C++ 中的主程序之后定义 struct 吗?

我想你的意思是main函数。是的,我们可以在main函数之后定义类(包括结构体)一个演示:

int main(){}
struct S{};

定义函数时,可以在主程序之前声明函数,然后在主程序之后编写函数定义。我想知道我们在定义结构时是否可以做类似的事情。

同样适用于类,您可以(向前)在函数之前声明它们,并在之后定义。但是,不完整(已声明但未定义)类的使用非常有限。您可以定义指针和对它们的引用,但不能创建它们或调用任何成员函数。一个演示:

struct S;     // (forward) declaration of a class
S* factory(); // (forward) declaration of a function
int main(){
    S* s = factory(); // OK, no definition required
    // s->foo();      // not OK, S is incomplete
    // S s2;          // not OK
}
struct S{             // definition of a class
    void foo();       // declaration of a member function
};
S* factory() {
     static S s;      // OK, S is complete
     s.foo();         // OK, note how the member function can be called
                      // before it is defined, just like free functions
     return &s;
}
void S::foo() {}      // definition of a member function

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以限制C ++中的用户输入吗?

来自分类Dev

我们可以在C中实现继承吗

来自分类Dev

我们可以将CV限定词添加到main的参数中吗?

来自分类Dev

我们可以从java中的main()方法访问非静态类吗?

来自分类Dev

我们可以在C ++中的类中定义哈希码方法吗

来自分类Dev

我们可以删除C宏定义中参数周围的括号吗?

来自分类Dev

我们可以强制该函数在C ++中内联吗

来自分类Dev

我们可以在C中与变量一起声明一个函数吗?

来自分类Dev

我们可以在C中的CGI脚本中添加PHP代码吗?

来自分类Dev

我们可以在C中的#define指令中声明变量吗?

来自分类Dev

我们可以从C中的同一结构中获得两个或多个typedef吗?

来自分类Dev

我们可以在C ++ 11中擦除基于范围的for循环中的项目吗

来自分类Dev

我们可以在C#的基类中捕获子类方法的异常吗?

来自分类Dev

我们可以在目标C中创建#pragma标记的细分吗?

来自分类Dev

我们可以通过hireddis将C int数组设置为Redis中的键值吗?

来自分类Dev

我们可以动态地为C中的静态变量分配内存吗?

来自分类Dev

在C ++中,我们可以为每个整数创建一个类吗?

来自分类Dev

我们可以在ruby 2.7.0中安装C gem吗

来自分类Dev

我们可以在C ++中向数组添加整数吗

来自分类Dev

我们可以在C ++中的if语句中使用符号吗?

来自分类Dev

我们可以在Delphi中实现ANSI C的`offsetof`吗?

来自分类Dev

我们可以在C#的基类中捕获子类方法的异常吗?

来自分类Dev

我们可以用C ++中的非模板类“包装”模板类吗?

来自分类Dev

为什么我们可以在C ++中的构造函数中使用声明的变量

来自分类Dev

像,虚拟函数我们可以在 C++ 中创建一个虚拟变量

来自分类Dev

定义函数后,我们可以在函数调用中调用函数吗

来自分类Dev

为什么我们不能在main函数中定义函数?

来自分类Dev

我们可以将我们的编程放在android的doInBackground()中吗

来自分类Dev

我们可以在“Quickblox”中重新加入我们错过的群组通话吗?

Related 相关文章

  1. 1

    我们可以限制C ++中的用户输入吗?

  2. 2

    我们可以在C中实现继承吗

  3. 3

    我们可以将CV限定词添加到main的参数中吗?

  4. 4

    我们可以从java中的main()方法访问非静态类吗?

  5. 5

    我们可以在C ++中的类中定义哈希码方法吗

  6. 6

    我们可以删除C宏定义中参数周围的括号吗?

  7. 7

    我们可以强制该函数在C ++中内联吗

  8. 8

    我们可以在C中与变量一起声明一个函数吗?

  9. 9

    我们可以在C中的CGI脚本中添加PHP代码吗?

  10. 10

    我们可以在C中的#define指令中声明变量吗?

  11. 11

    我们可以从C中的同一结构中获得两个或多个typedef吗?

  12. 12

    我们可以在C ++ 11中擦除基于范围的for循环中的项目吗

  13. 13

    我们可以在C#的基类中捕获子类方法的异常吗?

  14. 14

    我们可以在目标C中创建#pragma标记的细分吗?

  15. 15

    我们可以通过hireddis将C int数组设置为Redis中的键值吗?

  16. 16

    我们可以动态地为C中的静态变量分配内存吗?

  17. 17

    在C ++中,我们可以为每个整数创建一个类吗?

  18. 18

    我们可以在ruby 2.7.0中安装C gem吗

  19. 19

    我们可以在C ++中向数组添加整数吗

  20. 20

    我们可以在C ++中的if语句中使用符号吗?

  21. 21

    我们可以在Delphi中实现ANSI C的`offsetof`吗?

  22. 22

    我们可以在C#的基类中捕获子类方法的异常吗?

  23. 23

    我们可以用C ++中的非模板类“包装”模板类吗?

  24. 24

    为什么我们可以在C ++中的构造函数中使用声明的变量

  25. 25

    像,虚拟函数我们可以在 C++ 中创建一个虚拟变量

  26. 26

    定义函数后,我们可以在函数调用中调用函数吗

  27. 27

    为什么我们不能在main函数中定义函数?

  28. 28

    我们可以将我们的编程放在android的doInBackground()中吗

  29. 29

    我们可以在“Quickblox”中重新加入我们错过的群组通话吗?

热门标签

归档