일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코딩교육봉사
- programmers
- 알고리즘
- 공부일지
- java
- 자바
- 시나공
- 문제풀이
- 백준
- SW봉사
- 백준알고리즘
- CJ UNIT
- 파이썬
- kotlin
- SQL
- BFS
- MYSQL
- 정보처리산업기사
- python
- 백준 알고리즘
- softeer
- 회고
- 코틀린
- 데이터베이스
- 소프티어
- 프로그래머스
- 스프링
- 코딩봉사
- C++
- 1과목
Archives
- Today
- Total
JIE0025
[ C++ ] 객체 배열, 객체 포인터 배열 본문
728x90
객체도 배열로 만들 수 있다는 점
씨언어는 모든것에 포인터가 있고 배열이 있는 그런느낌이다.
객체 배열 선언
ClassName arr[10];
주의해야할 점 ❗❗
객체 배열을 선언할때도 생성자는 호출이 되기 때문에 생성자로 인자를 전달할 수 없다.
1) 다음 형태의 생성자는 정의되어있어야한다.
2) 다른 함수 형태로 일일히 값을 초기화해줄 수는 있다.
#include <iostream>
#include <string>
using namespace std;
class TestResult {
private:
int myScore;
int myNumber;
string myName;
public:
TestResult() {
myScore = 0;
myNumber = 0;
myName = "none";
}
void setInfo(int score, int number, string name);
void printAll() const;
};
void TestResult::setInfo(int score,int number,string name) {
myScore = score;
myNumber = number;
myName = name;
}
void TestResult::printAll() const {
cout << myNumber << '\n';
cout << myName << '\n';
cout << myScore << '\n';
}
int main() {
TestResult student[3];
int num, score;
string name;
for (int i = 0; i < 3; i++) {
cout << "num : " ;
cin >> num;
cout << "name : " ;
cin >> name;
cout << "score : ";
cin >> score;
student[i].setInfo(score, num, name);
}
student[0].printAll();
cout << "\n";
student[1].printAll();
cout << "\n";
student[2].printAll();
return 0;
}
객체 포인터 배열
객체 포인터 배열은 객체의 주소값 저장이 가능한 포인터 변수로 이루어진 배열
즉 객체의 주소값(포인터)이 모여있는 배열이라는 뜻
#include <iostream>
#include <string>
using namespace std;
class TestResult {
private:
int myScore;
int myNumber;
string myName;
public:
TestResult() {
myScore = 0;
myNumber = 0;
myName = "none";
}
TestResult(int score, int number, string name) {
myScore = score;
myNumber = number;
myName = name;
}
void printAll() const;
};
void TestResult::printAll() const {
cout << myNumber << '\n';
cout << myName << '\n';
cout << myScore << '\n';
}
int main() {
int num, score;
string name;
TestResult *student2[3];
for (int i = 0; i < 3; i++) {
cout << "num : ";
cin >> num;
cout << "name : ";
cin >> name;
cout << "score : ";
cin >> score;
student2[i] = new TestResult(score, num, name);
}
student2[0] -> printAll();
cout << "\n";
student2[1] -> printAll();
cout << "\n";
student2[2] -> printAll();
return 0;
}
'기타 학습 > Language' 카테고리의 다른 글
[ c++ ] cmath 라이브러리 (0) | 2022.05.17 |
---|---|
[ C++ ] this 포인터 (0) | 2022.05.17 |
[ C++ ] 이니셜라이저를 이용한 멤버 초기화 (0) | 2022.05.17 |
[C++] 생성자와 소멸자, 복사생성자 (0) | 2022.05.17 |
[ C++ ] 객체지향 프로그래밍의 개념, 정보은닉과 캡슐화 (0) | 2022.05.16 |