C++에서 값 없음을 어떻게 나타내야 하나요?

dltkddyd의 이미지

template<typename TT>
class mymy{
private:
TT* myR;
public:
mymy(int length) {
myR=new TT[length];
}
allocateV(int ind, TT value) {
myR[ind] = value;
}
};

위와 같이 만들었습니다. 그리고 다음과 같이 다섯 개를 만듭니다.

mymy ex1(5);
ex1.allocateV(0,10);
ex1.allocateV(1,20);

그리고 ex1.allocateV(2,값이 없음을 나타내는 것);

세 번째에는 값이 없음을 나타내는 값을 집어넣고 싶은데요. template의 타입인수에 상관없이 값이 없음을 나타내는 값으로 무엇을 전달해야 하는지 궁금합니다.

익명 사용자의 이미지

포인터면 null 메모리할당되었으면 0x00

dltkddyd의 이미지

포인터가 아닌 보통의 변수에 말입니다. 변수에 값이 할당되지 않았다는 표시로 할당하는 값을 질문드린 겁니다.

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

익명 사용자의 이미지

위에 적었잖습니까.. 0x00

planetarium의 이미지

값이 없음을 나타내는 일반적인 방법은 없습니다.
질문자께서도 알고 계신것 같지만 0을 넣으면 된다는 위 답변은 엉터리죠. "값 0" 과 "값 없음 0" 이 구분이 안되니까요.
해당하는 변수에서 사용되지 않는 값을 생각하여 사용하셔야 합니다.
면적처럼 음수가 될수 없는 경우에 -1을 사용한다거나, INT_MAX (0xFFFFFFFF) 을 사용한다거나,
템플릿처럼 일반화된 방법이 필요한 경우 상태를 나타내는 boolean 값을 별도로 사용하는 것도 고려해보셔야 합니다.

gilgil의 이미지

allocateV(int ind, TT value) {
myR[ind] = value;
}

1. 2번째 인자(TT value)를 pointer로 변경해서 pointer 값이 NULL인 경우 값이 없다고 판단.
2. TT 클래스에서 isClear()와 같은 method를 제공해서 isClear() return 값이 true인 경우 값이 없다고 판단.

디자인하기 나름이겠죠. ^^

dltkddyd의 이미지

개별적으로 분석해서 설계하는 방법 외에는 없군요. 참 C++은 어렵네요. ㅜㅜ

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

dltkddyd의 이미지

꼭 C++을 마스터해야겠습니다.

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

익명 사용자의 이미지

헉.. c++의 막강한 메모리관리 능력...

python의 None의 개념을 찾으시는거보면 고수준언어와 비교하시는 것 같은데,

C++을 마스터해야하는 이유가 메모리 관리 능력???

차라리 java를 하시지..

C++의 메모리 관리 능력이라는게 잘 쓰면 C보다는 낫다고 할만한 수준입니다만,

new와 delete와 pointer를 충분히 쓰면서 메모리 관리 능력을 찾는건 좀 넌센스네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.