mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-26 07:11:34 -08:00
127 lines
1.8 KiB
C++
127 lines
1.8 KiB
C++
// test usings header file.
|
|
|
|
namespace moose {
|
|
|
|
class Point;
|
|
|
|
class MyClass;
|
|
|
|
}
|
|
|
|
|
|
namespace moose {
|
|
|
|
class Point;
|
|
|
|
class MyClass {
|
|
public:
|
|
MyClass() : fVal(0) {
|
|
}
|
|
|
|
~MyClass() {};
|
|
|
|
/**
|
|
* fVal Accessors
|
|
* @{
|
|
*/
|
|
int getVal() const {
|
|
return fVal;
|
|
}
|
|
void setVal(int Val) const {
|
|
fVal = Val;
|
|
}
|
|
/**
|
|
* @}
|
|
*/
|
|
private:
|
|
int fVal;
|
|
};
|
|
|
|
}
|
|
|
|
namespace deer {
|
|
|
|
class Pickle;
|
|
|
|
};
|
|
|
|
// Code from Zhiqiu Kong
|
|
|
|
#ifndef BREAD_H
|
|
#define BREAD_H
|
|
|
|
namespace bread_name {
|
|
class bread
|
|
{
|
|
public:
|
|
void geta();
|
|
private:
|
|
int m_a;
|
|
int m_b;
|
|
};
|
|
}
|
|
|
|
#endif
|
|
|
|
// Code from David Engster
|
|
// Creating alias types through 'using' trickery
|
|
|
|
namespace somestuff {
|
|
class OneClass {
|
|
public:
|
|
void aFunc();
|
|
int anInt;
|
|
};
|
|
struct aStruct {
|
|
int foo;
|
|
int bar;
|
|
};
|
|
}
|
|
|
|
namespace otherstuff {
|
|
// make otherstuff::OneClass an alias for somestuff::OneClass
|
|
using somestuff::OneClass;
|
|
}
|
|
|
|
namespace morestuff {
|
|
// make morestuff an alias namespace for somestuff
|
|
using namespace somestuff;
|
|
// but hide aStruct with own type
|
|
struct aStruct {
|
|
int anotherFoo;
|
|
int anotherBar;
|
|
};
|
|
}
|
|
|
|
// We can also create an alias for an alias
|
|
namespace evenmorestuff {
|
|
using otherstuff::OneClass;
|
|
}
|
|
|
|
// Now with nested namespaces
|
|
namespace outer {
|
|
namespace inner {
|
|
struct StructNested {
|
|
int one;
|
|
int two;
|
|
};
|
|
struct AnotherStruct {
|
|
int three;
|
|
int four;
|
|
};
|
|
}
|
|
}
|
|
|
|
// Elevate the first struct into 'outer'
|
|
// so that we can access it via 'outer::StructNested'
|
|
namespace outer {
|
|
using outer::inner::StructNested;
|
|
}
|
|
|
|
// Create an alias for a nested namespace
|
|
namespace outerinner {
|
|
// equivalent to 'namespace outerinner = outer::inner;'
|
|
using namespace outer::inner;
|
|
}
|
|
|
|
// arch-tag: f7e59fad-100b-47d3-ae8b-a8390a026ade
|