0

これに対する解決策を見つけるために何年にもわたって見回してきたことを約束しますが、役に立たなかったのですが、C ++の経験がないので、何を検索すればよいかわからなかったのかもしれません.

最も簡単な方法は、認識できる場合に備えて、最初にエラー コードを表示することだと思います。それはちょっとしたヒープです。そのため、何が問題なのか理解することができません。(また、それが私の理解外のものであるか、または私が犯した本当に迷惑な間違いだと思うのはなぜですか!)

g++ -Wall -pedantic -ansi -std=c++0x -g   -c -o contacts.o contacts.cc
In file included from /usr/include/c++/4.6/vector:63:0,
             from contacts.h:5,
             from contacts.cc:2:
/usr/include/c++/4.6/bits/stl_construct.h: In function ‘void std::_Construct(_T1*,
 _Args&& ...) [with _T1 = person, _Args = {}]’:
/usr/include/c++/4.6/bits/stl_uninitialized.h:481:3:   instantiated from ‘static void
std::__uninitialized_default_n_1<_TrivialValueType>::__uninit_default_n(_ForwardIterator, 
_Size) [with _ForwardIterator = person*, _Size = unsigned int, bool _TrivialValueType = 
false]’
/usr/include/c++/4.6/bits/stl_uninitialized.h:529:7:   instantiated from ‘void 
std::__uninitialized_default_n(_ForwardIterator, _Size) [with _ForwardIterator = 
person*, _Size = unsigned int]’
/usr/include/c++/4.6/bits/stl_uninitialized.h:604:7:   instantiated from ‘void 
std::__uninitialized_default_n_a(_ForwardIterator, _Size, std::allocator<_Tp>&) [with 
_ForwardIterator = person*, _Size = unsigned int, _Tp = person]’
/usr/include/c++/4.6/bits/stl_vector.h:1134:2:   instantiated from ‘void 
std::vector<_Tp, _Alloc>::_M_default_initialize(std::vector<_Tp, _Alloc>::size_type) 
[with _Tp = person, _Alloc = std::allocator<person>, std::vector<_Tp, 
_Alloc>::size_type = unsigned int]’
/usr/include/c++/4.6/bits/stl_vector.h:239:9:   instantiated from ‘std::vector<_Tp, 
_Alloc>::vector(std::vector<_Tp, _Alloc>::size_type) [with _Tp = person, _Alloc = 
std::allocator<person>, std::vector<_Tp, _Alloc>::size_type = unsigned int]’
contacts.cc:7:38:   instantiated from here

編集: 申し訳ありませんが、私が何をしているのか完全には理解できませんが、これがあなたの求めているものであることを願っています. コードに少なくともこれだけある場合、エラーは引き続き表示されます(2つの関連ファイル):

Contacts.h:

#ifndef _CONTACTS_H
#define _CONTACTS_H

#include <iostream>
#include <vector>

#include "person.h"


class contacts{
  private:
  int element;
  int count;
  vector<person> pv;

  public:
  contacts();
};
#endif

そしてcontacts.cc:

#include "contacts.h"

using namespace std;


contacts::contacts() : count(0), pv(0) {}

ありがとう -イワン

4

1 に答える 1

1

なぜ0std::vector <>コンストラクターに渡すのですか?これは、あなたが書いたものと同じ効果があるように聞こえます:

contacts::contacts() : count(0) {}

于 2012-12-06T01:28:03.010 に答える