묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] 타입스크립트 올인원 : 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 메서드를 사용하는 것이 권장되는가요?단순히 생각했을 때는 불필요한 메서드 호출만 일어나는 것 아닌가해서 질문드립니다.