This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/15705] New: nested class access private sourronding members


Nested class 'Inner' can access private member 'i' of 'Outer' class, and 'Inner'
is not declared friend of 'Outer'

--- CODE ---
#include<iostream>
using namespace std;

class Outer {
private:
  int i;

public:
  void set(int ii) { i = ii; }
  void print() { cout << "[Outer] Valor de I=" << i << endl; }
  class Inner {
  public:
    void set(Outer* o, int ii) { o->i = ii; }
    void print(Outer* o) { cout << "[Outer::Inner] Valor de I=" << o->i << endl; }
  };
  //friend struct Inner; // NOTE: it is commented!
};

int main() {
  Outer o;
  o.set(10);
  o.print();

  Outer::Inner i;
  i.print(&o);
  
  return 0;
}

--- END CODE ---

--- COMPILE ---
$ g++ -v -save-temps test.cpp -o t
Leyendo especificaciones de /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/specs
Configurado con: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --disable-libunwind-exceptions --with-system-zlib
--enable-__cxa_atexit --host=i386-redhat-linux
Modelo de hilos: posix
gcc versión 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/cc1plus -E -D__GNUG__=3 -quiet -v
-D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3 -D_GNU_SOURCE test.cpp
test.ii
ignorando el directorio inexistente "/usr/i386-redhat-linux/include"
la búsqueda de #include "..." inicia aquí:
la búsqueda de #include <...> inicia aquí:
 /usr/include/c++/3.3.3
 /usr/include/c++/3.3.3/i386-redhat-linux
 /usr/include/c++/3.3.3/backward
 /usr/local/include
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include
 /usr/include
Fin de la lista de búsqueda.
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/cc1plus -fpreprocessed test.ii -quiet
-dumpbase test.cpp -auxbase test -version -o test.s
GNU C++ version 3.3.3 20040412 (Red Hat Linux 3.3.3-7) (i386-redhat-linux)
        compiled by GNU C version 3.3.3 20040412 (Red Hat Linux 3.3.3-7).
GGC heurísticas: --param ggc-min-expand=64 --param ggc-min-heapsize=64391
 as -V -Qy -o test.o test.s
GNU ensamblador versión 2.15.90.0.3 (i386-redhat-linux) utilizando BFD versión
2.15.90.0.3 20040415
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/collect2 --eh-frame-hdr -m elf_i386
-dynamic-linker /lib/ld-linux.so.2 -o t
/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../../crt1.o
/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../../crti.o
/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/crtbegin.o
-L/usr/lib/gcc-lib/i386-redhat-linux/3.3.3
-L/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../.. test.o -lstdc++ -lm -lgcc_s
-lgcc -lc -lgcc_s -lgcc /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/crtend.o
/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../../crtn.o
--- END COMPILE ---

-- 
           Summary: nested class access private sourronding members
           Product: gcc
           Version: 3.3.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: aplanas at bic dot es
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15705


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]