【发布时间】:2015-02-03 20:52:48
【问题描述】:
我一段时间以来第一次编写代码,当我尝试编译我现在拥有的代码时遇到了磁贴中所述的错误。整个错误表明“文件_ZN6My_vecD1Ev /var/tmp/ccwgvyoJ.o ld 中未定义的第一个引用符号:致命:符号引用错误。没有输出写入a.out”。我不确定这意味着什么或如何修复它以制作 My_vec 类的向量并完成代码。
main.cpp
#include <iostream>
#include <stdexcept>
#include <string>
#include <vector>
#include "My_vec.h"
int main()
{
try
{
// define an object v of My_vec type
vector<My_vec> v;
// insert 'B' at the rank 0 into the vector v
// use the overloaded operator << to display vector elements
// display the vector v size
}
catch(exception &error)
{
cerr << "Error: " << error.what() << endl;
}
}
#include <iostream>
#include <stdexcept>
#include "My_vec.h"
My_vec.cpp
void My_vec::set_values(int s, int c, char p)
{
size = s;
capacity = c;
*ptr = 'p';
}
My_vec.h
#ifndef _MY_VEC
#define _MY_VEC
#include <ostream>
using namespace std;
class My_vec
{
//member variables
int size, capacity;
char *ptr;
public:
//member functions
My_vec();
~My_vec();
My_vec(const My_vec& vec);
My_vec& operator=(const My_vec& vec);
int get_size() const;
int get_capacity() const;
char& operator[](int i) const;
char& operator[](int i);
bool is_empty() const;
char& elem_at_rank(int r) const;
void insert_at_rank(int r, const char& elem);
void replace_at_rank(int r, const char& elem);
void remove_at_rank(int r);
void set_values(int, int, char); //I Put In
};
ostream& operator<<(ostream& out, const My_vec& vec);
int find_max_index(const My_vec& v,int size);
void sort_max(My_vec& vec);
#endif
【问题讨论】:
-
My_vec的其余成员函数的定义在哪里?set_values()听起来是个糟糕的主意,代码属于构造函数。