2017-05-17 2 views
0

Xcodeには、メインファイルの "stdDev"は宣言されていませんがヘッダファイルで宣言されています。私は完全にこれを修正する方法を燃やしている。私はいくつかの援助に感謝します!C++メインファイルには、ヘッダファイル(Xcode)で宣言されている宣言されていない識別子があります

#include <iostream> 
#include <string> 
#include <cmath> 
#include "Person.hpp" 
using namespace std; 


int main() 
{ 
Person personRob("Rob", 95); 
Person personBob("Bob", 89); 
Person personGob("Gob", 99); 

Person personArray[] = {personRob, personBob, personGob}; 

Person whole_class; 

cout << "Standard deviation is: " << stdDev /* where Xcode is saying that stdDev is an undeclared identifier */ << endl; 

return 0; 
} 

person.hpp:

+0

:として

その後、あなたはそれを使用することができます。 –

+0

ヘッダファイルを追加しました – midnightmerc

+0

'stdDev'はメソッドです。それは 'Person'のインスタンス上で呼び出される必要があります。 'cout <<"のようなものです。標準偏差は次のようになります。<< whole_class.stdDev(もっと不足しているものがここに入ります)<< endl; 'そうでなければ、コンパイラはあなたが見つけることができない' stdDev'という名前の変数を考えます。 – user4581301

答えて

1
#include <iostream> 
#include <string> 

#ifndef PERSON_HPP 
#define PERSON_HPP 

class Person 

{ 

private: 

    std::string name; 
    double age; 

public: 
    Person(std::string = " ", double = 0.0); 
    std::string getName(); 
    double getAge(); 
    double stdDev(Person personArray[], int size); 

}; 

#endif 

stdDevは、非静的メンバ関数として宣言されています。構文修正をだ

std::cout << whole_class.stdDev(personArray, 3) 

:それを使用するためには、次のような、適切な引数を持つオブジェクト上でそれを呼び出す必要があります。

しかし、それはメンバー機能によく似ています。関数の名前から、配列内のPersonのリストの年齢の標準偏差を計算するように見えます。

メンバー以外の機能にします。それはPerson.hppの中身を見ずに間違っているものを伝えることは困難です

std::cout << stdDev(personArray, 3) 
関連する問題