묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
8강 Getter Setter 에 대한 질문이 있습니다.
안녕하세요 교수님.CPP에 대한 이해가 아직 많이 부족해서 수업을 듣던 중 질문이 생겼습니다. 조금 이상한 질문일 수도 있을것같은데,FString 멤버 변수의 Getter Setter 멤버 함수는FORCEINLINE FString& GetName() { return Name; }FORCEINLINE void SetName(const FString& InName) { Name = InName; }이렇게 인라인 함수 선언과 참조자 반환으로 성능을 중시한 반면, ECardType 열거형 멤버 변수의 Getter Setter의 경우에는ECardType GetCardType() const { return CardType; }void SetCardType(ECardType InCardType) { CardType = InCardType; }이렇게 선언하여 안정성을 추구한 것처럼 보이는데, 이런 설계 이유나 판단 기준이 무엇인가요? 객체의 크기와 특성에 따라 적절한 설계 방법이 조금씩 다르기 때문일까요?
-
해결됨[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
interface를 사용할 때 private 사용방법은?
impolements러 interface를 받아 class를 만들때 private이 안되는 오류를 보여주셨는데요interface를 사용하지 않고 그냥 class안에서 type을 지정하는 방법, abstract class를 이용하는 방법 모두 이해됬습니다. 하지만 interface를 사용하면 private, protected 사용이 불가한 것인지 잘 모르겠어서 질문을 올립니다. 구글링해본결과 class내에 속성으로 만들고 getter, setter를 이용하는 것으로 우회하는 방법을 사용하더라구요.(https://stackoverflow.com/questions/37791947/how-to-define-a-private-property-when-implementing-an-interface-in-typescript) 이렇게 했을 때 private의 기능인 class 밖에서는 호출 할 수 없다고 위반되는 결과가 나옵니다. 어떤식으로 해결 해야 할까요? interface Interface { readonly a: string; b: number; } class TSClass implements Interface { private readonly _a: string = "init"; get a() { return this._a; } protected _b: number = 1; get b() { return this._b; } set b(v: number) { this._b = v; } c: string = "기본값이 public"; method() { console.log(this._a); console.log(this._b); console.log(this.c); } } class inheritClass extends TSClass { method() { console.log(this._a); // error console.log(this.a); // 가능.. console.log(this._b); console.log(this.b); console.log(this.c); } } new inheritClass()._a; // error new inheritClass().a; // 가능... new inheritClass()._b; // error new inheritClass().b; // 가능.. new inheritClass().c;
-
해결됨홍정모의 따라하며 배우는 C++
익명 객체에서 생성자와 getCents함수에 대해 궁금한 점이 있습니다.
#include <iostream> using namespace std; class Cents { private: int cents_; public: Cents(const int& cents) : cents_(cents) { cout << "Constructor" << endl; } const int& getCents() const//뒤에 const를 붙여준 이유는 함수 오버로딩 { return cents_; } }; Cents add(const Cents& c1, const Cents& c2) { return Cents(c1.getCents() + c2.getCents());//Cents 생성자 호출 } int main() { cout << add(Cents(6), Cents(8)).getCents()<< endl; //인자로 하는 생성자 각각 호출 return 0; }교수님께서는 getCents함수에서 반환형에서 참조자를 붙이지 않고 뒤에 const만 붙였는데요. 이러면 return by value가 되서 복사된 값을 반환하는 것이 아닌가요? 멤버변수 그 자체를 반환하고 값이 변경되는 것을 방지하기 위해서는 반환형에 const int&를 붙여야 하지 않나요??
-
미해결홍정모의 따라하며 배우는 C++
안녕하세요. getter함수에 대해 질문이 있습니다.
교수님께서는 const int& getDay(){return m_day;} 로 멤버변수인 m_day를 리턴하셨는데, main함수에서 출력할 때는 그냥void getDay(){cout<<day<<endl;}로 public함수를 만들고, 메인에서 today.getDay();로 해줘도 되지 않나요?가령, getDate()같이 멤버변수들을 모두 출력한다고 하였을 때는cout<<month<<" "<<day<<" '<<year<<endl;로 하는 것이 편리하지 않나요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
클래스 내부에서 getter/setter 메서드 사용
안녕하세요. 영한님과 서포터님들 덕분에 즐겁게 공부하고 있습니다.주문, 주문상품 엔티티 개발 강의를 듣던 중 궁금한 것이 생겼습니다. 강의에서 보시면 클래스 내부에서 생성 메서드 혹은 비즈니스 로직 메서드를 구현하시면서 getter/setter 메서드를 사용하시는데요.이렇게 클래스 내부에서 사용할 때도 필드에 직접 접근하는 것보다는 getter/setter 메서드를 사용하는 것이 권장되는가요?단순히 생각했을 때는 불필요한 메서드 호출만 일어나는 것 아닌가해서 질문드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
lombok 관련 질문드립니다.
intellij에서 lombok을 설치하여 어노테이션설치 활성화까지 체크 후 시도 해봤으나 되지 않습니다. 다른 클래스에서는 lombok 이 적용 되어 잘 되는데 첫번째 이미지에서는 왜 실행이 되지 않을까요? 해결 방법이 궁금합니다. 다른 클래스 화면의 이미지까지 첨부하여 올리겠습니다. 참고 부탁드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
lombok @Getter로 수정되지 않도록 하는 가장 좋은 방법이 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 실무에서 class 멤버 중 collections가 있을 때 lombok @Getter로 수정되지 않게 하려면 어떤 방법이 가장 좋은지 궁금합니다. 강의 내용 중 실무에서는 lombok @Getter는 사용하는 것이 편리하지만 @Setter는 사용하면 변경 지점이 많아져 관리가 힘드므로 권장하지 않는다고 말씀해주셨습니다. 하지만 관련해서 찾아보니 class 멤버 중 list 같은 collections가 있다면 @Getter로도 데이터 변경이 가능합니다. 실제로 "엔터티 설계시 주의점" 강의에서 연관 관계 메서드에서 아래와 같이 Getter로 데이터를 변경해주셨는데요. (강의 23:55) //==연관 관계 메서드==//public void setMember(Member member) { this.member = member; member.getOrders().add(this);} 이렇게 한다면 Getter가 Setter처럼 쓰일 수 있으므로 역시 변경 지점이 많아질 수 있을 것 같습니다. 따라서 실무에서는 Getter가 Getter로서의 역할만 할 수 있도록 해주실 것 같은데요. 어떤 방법이 제일 좋은지 궁금합니다. 구글링으로 찾아봤을 때는 2021년까지도 이슈가 있고 @Value도 정확한 대안은 아닌 것 같습니다. https://github.com/projectlombok/lombok/issues/1504#issue-268909818 https://github.com/projectlombok/lombok/issues/1504#issuecomment-803578805 감사합니다.