Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. struct String {
  5.     String(char *chars = "") : str(chars) {}
  6.  
  7.     virtual ~String() {
  8.         std::cout << "destructing" << std::endl;
  9.         delete[] str;
  10.     }
  11.  
  12.     char &at(size_t idx) {
  13.         std::cout << "ref" << std::endl;
  14.         return str[idx];
  15.     }
  16.  
  17.     char  at(size_t idx) const {
  18.         std::cout << "copy" << std::endl;
  19.         return str[idx];
  20.     }
  21.     size_t size;
  22.     char *str;
  23. };
  24.  
  25. int main() {
  26.     const String str_const("5432");
  27.     String str("2345");
  28.     char &a = str.at(2);
  29.     char b = str.at(2);
  30.     str.at(2);
  31.     str.at(2) = 5;
  32.  
  33. //    char &aa = str_const.at(2);
  34. //    char bb = str_const.at(2);
  35.  
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement