gpt4 book ai didi

c++ - 为什么我不能在另一个文件中调用类的非默认构造函数?

转载 作者:行者123 更新时间:2023-11-30 05:33:18 25 4
gpt4 key购买 nike

<分区>

我是 C++ 的新手。我已经开始编写一个名为 Row 的类,我试图调用一个非默认构造函数来在单独的 main.cpp 文件中创建一个行对象,但我一直收到一个我不明白的错误。谁能向我解释我做错了什么?

这是我的三个文件:

行.h

#ifndef ROW_H
#define ROW_H
#include<vector>
#include<iostream>

class Row {
std::vector<int> row;
public:
// constructor
Row(std::vector<int> row);
};

#endif

行.cpp

#include<vector>
#include<iostream>
#include "Row.h"

// constructor
Row::Row(std::vector<int> row_arg) {
row = row_arg;
}

主要.cpp

#include<vector>
#include<iostream>
#include "Row.h"
using namespace std;

int main() {
vector<int> v = {1, 2, 3, 4};
Row row(v);
return 0;
}

我在尝试编译 main.cpp 时收到的错误是这样的:

/tmp/ccJvGzEW.o:pascal_classes.cpp:(.text+0x71): undefined reference to `Row::Row(std::vector<int, std::allocator<int> >)'
/tmp/ccJvGzEW.o:pascal_classes.cpp:(.text+0x71): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `Row::Row(std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com