visibility17.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 67 行

C
67
字号
// Build don't link: // GROUPS passed visibility// visibility file// From: Sandeep Shroff <ss@caere.com>// Date:     Thu, 05 Aug 1993 17:23:20 -0700// Subject:  Access to private constructor.// Message-ID: <9308060023.AA10283@neptune.caere.com>#include <iostream>#include <cstring>class Base{public:  char* getName() {return name_;}private:  Base();  Base(char* str);  char* name_;};class Derived : public Base{public:  Derived(int n, char* str);  Derived(int n);  int getNum() {return num_;}private:  int num_;};Base::Base(){ // ERROR - private  name_ = std::strcpy(new char[std::strlen(" ") + 1], " ");}Base::Base(char* str){ // ERROR - private  if(str != NULL)    name_ = std::strcpy(new char[std::strlen(str) + 1], str);}Derived::Derived(int n, char* str) : Base(str){// ERROR - .*  num_ = n;}Derived::Derived(int n) : Base(){// ERROR - .*  num_ = n;}int main(){  // Derived* d = new Derived(10, "test");  Derived* d = new Derived(10);  std::cerr << d->getNum() << "\t" << d->getName() << std::endl;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?