C++ 在本地类中定义结构并初始化它

C++ 在本地类中定义结构并初始化它,c++,C++,我们学院的教授给了我们一个棘手的问题,我们必须在一个函数中声明一个类,并在该类中声明一个结构,然后从main()调用该函数。我尝试了以下代码: #include<iostream> using namespace std; void fun() { class Test { public: struct X { int v; }x; x.v=10;

我们学院的教授给了我们一个棘手的问题,我们必须在一个函数中声明一个类,并在该类中声明一个结构,然后从main()调用该函数。我尝试了以下代码:

#include<iostream>
using namespace std;
void fun()
{
    class Test
    {
        public:
        struct X
        {
            int v;
        }x;
        x.v=10;
        void method(void) {
            cout << "Local Class called, v="<<x.v;
        }
    };
    Test t;
    t.method();
}
int main(void)
{
    fun();
    return 0;
}
#包括
使用名称空间std;
虚无乐趣()
{
课堂测试
{
公众:
结构X
{
INTV;
}x;
x、 v=10;
无效方法(void){

您是否可以将赋值
x.v=10;
放在类作用域中,但只有声明和函数定义可以存在。该代码必须放在函数中,可能是
测试的构造函数:

#include <iostream>

void fun()  
{
   class Test 
   {
   public:
      struct X
      {
         int v;
      } x;

      Test()
      {
         x.v = 10;
      }

      void method()
      {
         std::cout << "Local class called; v = " << x.v << std::endl;
      }
   };

   Test t;
   t.method();  
}

int main()
{
   fun();
}
#包括
虚无乐趣()
{
课堂测试
{
公众:
结构X
{
INTV;
}x;
测试()
{
x、 v=10;
}
void方法()
{

std::cout您将赋值
x.v=10;
放在类作用域中,但只有声明和函数定义可以存在。该代码必须放在函数中,可能是
测试的构造函数:

#include <iostream>

void fun()  
{
   class Test 
   {
   public:
      struct X
      {
         int v;
      } x;

      Test()
      {
         x.v = 10;
      }

      void method()
      {
         std::cout << "Local class called; v = " << x.v << std::endl;
      }
   };

   Test t;
   t.method();  
}

int main()
{
   fun();
}
#包括
虚无乐趣()
{
课堂测试
{
公众:
结构X
{
INTV;
}x;
测试()
{
x、 v=10;
}
void方法()
{

std::你能详细说明这是一个“技巧问题”的方式吗?并正确缩进你的代码。我想在函数中声明一个类,在该类中声明一个结构似乎是一种糟糕的编程风格。因此,棘手?啊,“棘手”!=“棘手”):)对不起,英语不是我的第一语言。:)你能详细说明这是一个“技巧问题”的方式吗?并适当缩进你的代码。我想在一个函数中声明一个类,在该类中声明一个结构似乎是一种糟糕的编程风格。因此,棘手?啊,“棘手”!=“棘手”对不起,英语不是我的第一语言。):根据C++版本,初始化。C++的版本,初始化。