This file is indexed.

/usr/share/doc/octave/octave.html/Precedence-of-Objects.html is in octave-doc 4.2.2-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Precedence of Objects (GNU Octave)</title>

<meta name="description" content="Precedence of Objects (GNU Octave)">
<meta name="keywords" content="Precedence of Objects (GNU Octave)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Overloading-Objects.html#Overloading-Objects" rel="up" title="Overloading Objects">
<link href="Inheritance-and-Aggregation.html#Inheritance-and-Aggregation" rel="next" title="Inheritance and Aggregation">
<link href="Operator-Overloading.html#Operator-Overloading" rel="prev" title="Operator Overloading">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">


</head>

<body lang="en">
<a name="Precedence-of-Objects"></a>
<div class="header">
<p>
Previous: <a href="Operator-Overloading.html#Operator-Overloading" accesskey="p" rel="prev">Operator Overloading</a>, Up: <a href="Overloading-Objects.html#Overloading-Objects" accesskey="u" rel="up">Overloading Objects</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Precedence-of-Objects-1"></a>
<h4 class="subsection">34.4.3 Precedence of Objects</h4>

<p>Many functions and operators take two or more arguments and the situation can
easily arise where these functions are called with objects of different
classes.  It is therefore necessary to determine the precedence of which method
from which class to call when there are mixed objects given to a function or
operator.  To do this the <code>superiorto</code> and <code>inferiorto</code> functions can
be used
</p>
<a name="XREFsuperiorto"></a><dl>
<dt><a name="index-superiorto"></a>: <em></em> <strong>superiorto</strong> <em>(<var>class_name</var>, &hellip;)</em></dt>
<dd><p>When called from a class constructor, mark the object currently constructed
as having a higher precedence than <var>class_name</var>.
</p>
<p>More that one such class can be specified in a single call.  This function
may <em>only</em> be called from a class constructor.
</p>
<p><strong>See also:</strong> <a href="#XREFinferiorto">inferiorto</a>.
</p></dd></dl>


<a name="XREFinferiorto"></a><dl>
<dt><a name="index-inferiorto"></a>: <em></em> <strong>inferiorto</strong> <em>(<var>class_name</var>, &hellip;)</em></dt>
<dd><p>When called from a class constructor, mark the object currently constructed
as having a lower precedence than <var>class_name</var>.
</p>
<p>More that one such class can be specified in a single call.  This function
may <em>only</em> be called from a class constructor.
</p>
<p><strong>See also:</strong> <a href="#XREFsuperiorto">superiorto</a>.
</p></dd></dl>


<p>With the polynomial class, consider the case
</p>
<div class="example">
<pre class="example">2 * polynomial ([1, 0, 1]);
</pre></div>

<p>that mixes an object of the class <code>&quot;double&quot;</code> with an object of the class
<code>&quot;polynomial&quot;</code>.  In this case the return type should be
<code>&quot;polynomial&quot;</code> and so the <code>superiorto</code> function is used in the class
constructor.  In particular the polynomial class constructor would be modified
to
</p>
<div class="example">
<pre class="verbatim">## -*- texinfo -*-
## @deftypefn  {} {} polynomial ()
## @deftypefnx {} {} polynomial (@var{a})
## Create a polynomial object representing the polynomial
##
## @example
## a0 + a1 * x + a2 * x^2 + @dots{} + an * x^n
## @end example
##
## @noindent
## from a vector of coefficients [a0 a1 a2 @dots{} an].
## @end deftypefn

function p = polynomial (a)

  if (nargin &gt; 1)
    print_usage ();
  endif

  if (nargin == 0)
    p.poly = [0];
    p = class (p, &quot;polynomial&quot;);
  else
    if (strcmp (class (a), &quot;polynomial&quot;))
      p = a;
    elseif (isreal (a) &amp;&amp; isvector (a))
      p.poly = a(:).';  # force row vector
      p = class (p, &quot;polynomial&quot;);
    else
      error (&quot;@polynomial: A must be a real vector&quot;);
    endif
  endif

  superiorto (&quot;double&quot;);

endfunction
</pre></div>

<p>Note that user classes <em>always</em> have higher precedence than built-in
Octave types.  Thus, marking the polynomial class higher than the
<code>&quot;double&quot;</code> class is not actually necessary.
</p>
<p>When confronted with two objects of equal precedence, Octave will use the
method of the object that appears first in the list of arguments.
</p>
<hr>
<div class="header">
<p>
Previous: <a href="Operator-Overloading.html#Operator-Overloading" accesskey="p" rel="prev">Operator Overloading</a>, Up: <a href="Overloading-Objects.html#Overloading-Objects" accesskey="u" rel="up">Overloading Objects</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>