여기에 나와있는 코드에서 아래에 언급 된 두 줄을 이해할 수 없습니다. int*
을 사용해야하는 이유는 무엇입니까? 개인 변수에 어떻게 액세스하고 있습니까? 나는이 두 줄로 내가 무엇을하고 있는지 확신하지 못한다. 자세히 설명해주십시오.C++에서 포인터의 타입 캐스팅에 대한 설명
문제있는 라인 :
int *p = (int *) &s;
*p=10;
홈페이지 코드 :이 코드는 도움을 클래스에 의해 부과 된 캡슐이 파손 클래스 sample
에 회원 a
에 액세스하려고
#include <iostream>
using namespace std;
class sample {
private:
int a;
public:
void function() {
a=5;
}
void printA() {
cout<<"value is "<<a<<endl;
}
};
int main() {
sample s;
s.function();
s.printA();
int *p = (int *) &s;
*p=10;
s.printA();
}
방금 가상 메서드를 VS에 추가하면 gcc "a"가 변경되지 않습니다. – Arkady