为什么赢了';这不管用吗?C++; 最近我开始学习C++的基础知识,通过Bjarne Stroustrup写的一本书,我在使用向量的方式来创建结构的时候遇到了一个问题。

为什么赢了';这不管用吗?C++; 最近我开始学习C++的基础知识,通过Bjarne Stroustrup写的一本书,我在使用向量的方式来创建结构的时候遇到了一个问题。,c++,C++,产生的错误表示变量或字段“vector_init”声明为void, “Vector”未在此作用域中声明,“v”未在此作用域中声明,应在“int”之前声明主表达式 using namespace std; int main(int argc, char const *argv[]) { struct Vector { int sz; // number of elements double* ele

产生的错误表示变量或字段“vector_init”声明为void, “Vector”未在此作用域中声明,“v”未在此作用域中声明,应在“int”之前声明主表达式

using namespace std;


int main(int argc, char const *argv[])
{
    struct Vector {
        int sz;                             // number of elements
        double* elem;                       // pointer to elements 
    };

    Vector my_first_vector;

    return 0;
}
void vector_init(Vector& v, int s)
{

    v.elem = new double[s];                 // allocate an array of s doubles
    v.sz = s;


}
你应该:

struct Vector {
    int sz;                             // number of elements
    double* elem;                       // pointer to elements 
};
在主屏幕的外部和上方

您应该移动:

struct Vector {
    int sz;                             // number of elements
    double* elem;                       // pointer to elements 
};

main

外部和上方,错误消息的意思与它所说的完全一致;您已经在
main
的范围内声明了结构
Vector
。除了
main
,没有其他函数知道什么是
Vector
。要解决此问题,请将
struct Vector
的定义移到
main
块之外。

错误消息的意思与它所说的完全相同;您已经在
main
的范围内声明了结构
Vector
。除了
main
,没有其他函数知道什么是
Vector
。要解决此问题,请将
struct Vector
的定义移到
main
块之外。

您的代码有一些问题。。。下面是一个允许它编译的修复程序:您需要在
main
之外声明
struct Vector

using namespace std; // <~ this is bad practice. Try to not use it (or minimize its scope)

struct Vector {
   int sz;                             // number of elements
   double* elem;                       // pointer to elements 
};

int main(int argc, char const *argv[])
{


    Vector my_first_vector;

    return 0;
}

void vector_init(Vector& v, int s)
{
    v.elem = new double[s];                 // allocate an array of s doubles (also leaks memory)
    v.sz = s;
}

使用命名空间std;// 您的代码有一些问题。。。下面是一个允许它编译的修复程序:您需要在
main
之外声明
struct Vector

using namespace std; // <~ this is bad practice. Try to not use it (or minimize its scope)

struct Vector {
   int sz;                             // number of elements
   double* elem;                       // pointer to elements 
};

int main(int argc, char const *argv[])
{


    Vector my_first_vector;

    return 0;
}

void vector_init(Vector& v, int s)
{
    v.elem = new double[s];                 // allocate an array of s doubles (also leaks memory)
    v.sz = s;
}

使用命名空间std;//欢迎来到堆栈溢出。对于将来的问题,你可能想考虑一个更具描述性的标题。此外,我建议在帮助中心阅读。永远不要使用名称空间std;永远不会。欢迎来到堆栈溢出。对于将来的问题,你可能想考虑一个更具描述性的标题。此外,我建议在帮助中心阅读。永远不要使用名称空间std;从未。