2013-03-08 2 views
0

나는 우리가 어떤 하나의 도움말 줘요 C를 사용하지 않을 수도 내 프로젝트에서이 파일을 사용할 수 있습니다 어떻게 MathUtils.h다른 파일에서 .mm 파일의 C++ 클래스 개체를 사용하는 방법은 무엇입니까?

#include "iostream" 

및 MathUtils.cpp

#include "MathUtils.h" 

using namespace std; 

//Box class ..................... 
class Box 
{ 
private: 
    double length; // Length of a box 
    double breadth; // Breadth of a box 
    double height; // Height of a box 
public: 
    void setParameters(int l,int b,int h); 
    int volume(); 
    int area(); 
}; 

void Box::setParameters(int l, int b, int h) 
{ 
    length=l; 
    breadth=b; 
    height=h; 
} 

int Box::volume() 
{ 
    return length*breadth*height; 
} 

int Box::area() 
{ 
    return (2*(length*breadth) + 2*(breadth*height) + 2*(height*length)); 
} 


//sphere class................ 
class Sphere 
{ 
private: 
    double pi=3.14; 
    double r; 
public: 
    void setParameters(int radius); 
    int volume(); 
    int area(); 
}; 

void Sphere::setParameters(int radius) 
{ 
    r=radius; 
} 

int Sphere::volume() 
{ 
    return (4/3)*pi*r*r; 
} 

int Sphere::area() 
{ 
    return 4*pi*r*r; 
} 

두 개의 파일을 만든 ++ 내 프로젝트의 파일 그래서 다른 viewController 파일에서 Box 및 Sphere 클래스 개체를 어떻게 사용할 수 있는지 알고 싶습니다. 감사합니다. .

+0

당신이 그것을 봤나요 : 상자에 대한 귀하의 멤버 함수는 여전히 다음을 사용할 수있다 mathutils.c

뷰 컨트롤러에서 함수에 있어야? – Geoffroy

+0

XCode를 사용하는 경우 http://www.brandonpate.org/?p=34 – user1929959

답변

1

클래스를 .h 파일에 정의합니다.

class Box 
{ 
private: 
    double length; // Length of a box 
    double breadth; // Breadth of a box 
    double height; // Height of a box 
public: 
    void setParameters(int l,int b,int h); 
    int volume(); 
    int area(); 
}; 

class Sphere 
{ 
private: 
    double pi=3.14; 
    double r; 
public: 
    void setParameters(int radius); 
    int volume(); 
    int area(); 
}; 

mathutils.h 에 당신의 ViewController 파일에 #include "mathutils.h" 추가 : 예를 들어

, 이동합니다.

{ 
    Box b; 
    b.setParameters(1,2,3); 
    int v = b.volume(); 
    int a = b.area(); 
} 
+0

을 참조하십시오. 내가 가져온 뷰 컨트롤러에서 객체 상자를 만들고 메서드를 호출하는 방법은 무엇입니까 –

+0

클래스 디자인의 요점은 setParameters의 일부 기능을 클래스의 생성자로 이동하려고합니다. 예 : 위의 예는 다음과 같습니다. { Box b (1,2,3); int v = b.volume(); int a = b.area(); } –

+0

NSLog는 C++ 클래스에서 작동하지 않습니다. 누군가가 트릭을 알아 냈다고 확신하지만, cout <<, printf를 사용하거나 NSLog()를 사용하여 멤버 함수의 값을 인쇄하십시오. {NSLog (@ "% d", box.volume()); } –

관련 문제