c++ Array 초보 간단한 질문드립니다.
조회수 440회
#include <iostream>
#include <string>
using namespace std;
int main() {
int arrayName[3] = { 1, 2, 3 };
cout << arrayName[2] << endl;
cout << "Array size is " << **arrayName**.size() << endl;
string input_string;
cout << "Type something: ";
getline(cin, input_string);
cout << "Hello, World." << endl;
cout << "This is what you typed: ";
cout << input_string << endl;
input_string.erase(input_string.begin() + 1, input_string.end() - 1);
cout << input_string;
return 0;
}
여기서 위에 표시된 arrayName 부분에 빨간줄이 쫙 그이면서 자꾸 에러가 뜨는데 왜 그런것인가요?
답변주시면 정말 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
arrayName
이 일반 배열이기 때문입니다.a.size()
와 같이 사용하기 위해서는a
가 클래스형 변수여야 하고, 멤버 함수 중에size()
함수가 있어야 합니다.cout << "Array size is " << **arrayName**.size() << endl;
일반 배열의 길이를 출력하고 싶다면 위의 코드를 아래처럼 바꾸어 보세요.
cout << "Array size is " << sizeof(arrayName)/sizeof(arrayName[0]) << endl;
-
(•́ ✖ •̀)
알 수 없는 사용자
- a.size()와 같이 사용하기 위해서는 a가 클래스형 변수여야 하고, 멤버 함수 중에 size() 함수가 있어야 합니다. 혹시 이 부분 좀 더 쉽게 설명 부탁드려도 될까요? 잘 이해가 가지 않아서요. 감사합니다. 알 수 없는 사용자 2020.12.18 12:43
- 클래스에 대한 기본적인 내용을 말씀드린 것인데 잘 이해가 안 가신다면, 보고 계신 책의 구조체 챕터를 먼저 읽으시고, 그 다음에 클래스 챕터를 읽으시면 아마도 이해가 되실 거에요. 보통 string형 변수나 벡터형 변수등에서 멤버함수인 .size() 함수를 자주 사용하는데요. string형이 일반 자료형이 아니고, 클래스여서 그렇습니다. 알 수 없는 사용자 2020.12.18 14:30
- 답변 정말 감사합니다. 많은 도움 됬스니다. 알 수 없는 사용자 2020.12.18 15:34
-
댓글 입력