summaryrefslogtreecommitdiffstats
path: root/tksao/vector/vectorstr.h
blob: 36587adbd188b45dc3eb31bb1c3f150fb29fa708 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (C) 1999-2018
// Smithsonian Astrophysical Observatory, Cambridge, MA, USA
// For conditions of distribution and use, see copyright notice in "copyright"

#ifndef __vectorstr_h__
#define __vectorstr_h__

#include <iostream>
using namespace std;

class VectorStr {
 public:
  char* c[2];

 public:
  VectorStr() {c[0]=NULL; c[1]=NULL;}
  ~VectorStr();
  VectorStr(const char*, const char*);
  VectorStr(const VectorStr&);
  VectorStr& operator=(const VectorStr&);

  const char* operator[](int i) const {return c[i];} // return element
  char** cc() {return c;} // return vector
};

ostream& operator<<(ostream&, const VectorStr&);
istream& operator>>(istream&, VectorStr&);

class VectorStr3d {
 public:
  char* c[3];

 public:
  VectorStr3d() {c[0]=NULL; c[1]=NULL; c[2]=NULL;}
  ~VectorStr3d();
  VectorStr3d(const char*, const char*, const char*);
  VectorStr3d(const VectorStr3d&);
  VectorStr3d& operator=(const VectorStr3d&);

  const char* operator[](int i) const {return c[i];} // return element
  char** cc() {return c;} // return vector
};

ostream& operator<<(ostream&, const VectorStr3d&);
istream& operator>>(istream&, VectorStr3d&);
#endif